灵活的滑动窗口(在Python)(Flexible sliding window (in Pytho

2019-09-17 01:53发布

问题描述:我感兴趣的看着的,比方说,3个字的左侧和3到右侧的文本窗口项。 基座壳体具有ω-3 W-2 W-1项的形式W + 1瓦特+ 2 W + 3。 我想要实现了我的文字滑动窗口,我将能够记录每个术语的上下文单词。 所以,每一个字一旦处理作为一个术语,但是当窗口移动,就变成了上下文字等。然而,当术语是一致的第一个字,还有左边没有上下文的话(T W + 1 w ^ + 2 W + 3),当它的行中的第2个字的话,只有一个在左上下文字,等等。 所以,我感兴趣的任何暗示了无需编写实现这个灵活的滑动窗口(在Python),并分别指定每个可能发生的情况。

总结一下:

输入的例子

[ “W1”, “W2”, “W3”, “W4”, “W5”, “W6”, “W7”, “W8”, “W9”, “W10”]

输出

T1,W2,W3 W4

W1 T2 W3 W4 W5

W1,W2,W4 T3 W5 W6

W1,W2,W3 W5 T4 W6 W7

__,W2,W3 W4 T5 W6 W7 W8

__ __等。

我目前的计划是在输出每行一个单独的条件来实现这一点。

Answer 1:

如果你想的滑动窗口n的话,使用双端队列的最大长度n实现缓冲。

这应该说明的概念:

mystr = "StackOverflow"    
from collections import deque    
window = deque(maxlen=5)
for char in mystr:
    window.append(char)
    print ( ''.join(list(window)) )

输出:

S
St
Sta
Stac
Stack
tackO
ackOv
ckOve
kOver
Overf
verfl
erflo
rflow


文章来源: Flexible sliding window (in Python)