python - 如何为句子列表创建窗口/ block ?

标签 python nlp nltk n-gram language-model

我有句子列表,我想创建skipgram (窗口大小= 3),但我希望计数器跨越句子,因为它们都是不相关的。

所以,如果我有句子:

[["my name is John"] , ["This PC is black"]]

三胞胎将是:

[my name is]
[name is john]
[this PC is]
[PC is black]

最好的方法是什么?

最佳答案

这是一个简单的函数来做到这一点。

def skipgram(corpus, window_size = 3):
    sg = []
    for sent in corpus:
        sent = sent[0].split()
        if len(sent) <= window_size:
            sg.append(sent)
        else:
            for i in range(0, len(sent)-window_size+1):
                sg.append(sent[i: i+window_size])
    return sg

corpus = [["my name is John"] , ["This PC is black"]]
skipgram(corups)

关于python - 如何为句子列表创建窗口/ block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53928957/

相关文章:

python - Python 中的 AST 操作

python - Django 不创建翻译 .po 文件

machine-learning - 使用我自己的训练示例训练 spaCy 现有的 POS 标记器

php - 使用 python 和 php -python nltk 进行情感分析

python - 在哪里可以找到有关Django ORM返回类型/可能引发的异常的文档

python - 我如何在Python网络中检查IP地址范围

python - spaCy 的词性和依赖标签是什么意思?

c++ - C++ 中的语言转换器(从日语到英语)

python - 在 64 位机器的 python 2.7 中安装 NLTK

regex - 如何编写 nltk 语法来检查但不捕获某些文本