Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nlp N-gram忽略换行符_Nlp_Nltk_N Gram - Fatal编程技术网

Nlp N-gram忽略换行符

Nlp N-gram忽略换行符,nlp,nltk,n-gram,Nlp,Nltk,N Gram,我对nltk比较陌生,但最近我遇到了一个问题,似乎找不到解决办法 我有一篇这样的文章 猴子喜欢香蕉。 天空是蓝色的。 我正在尝试制作bigrams,通过使用word_标记器,它创建了这些bigrams: 1类猴子 喜欢香蕉1 香蕉1 天空1 天空是1 是蓝色1 我怎样才能使它工作,这样它就不会产生二元图 香蕉1 ? 太长,读不下去了 在使用bigrams之前,请使用sent\u tokenize。(确保使用nltk.download(“punkt”)安装了punkt) 然后: 细节 1) 你错过

我对nltk比较陌生,但最近我遇到了一个问题,似乎找不到解决办法

我有一篇这样的文章

猴子喜欢香蕉。

天空是蓝色的。

我正在尝试制作bigrams,通过使用word_标记器,它创建了这些bigrams:

1类猴子
喜欢香蕉1
香蕉1
天空1
天空是1
是蓝色1

我怎样才能使它工作,这样它就不会产生二元图

香蕉1
?

太长,读不下去了 在使用bigrams之前,请使用
sent\u tokenize
。(确保使用nltk.download(“punkt”)安装了punkt)

然后:

细节 1) 你错过了大字游戏的要点

它们用于训练引擎识别并置的单词

因此,在使用bigrams之前,您必须稍微解析一下内容。因此,在上面的示例中,在使用bigram之前,先使用
sent\u tokenize
,然后使用
word\u tokenize
。您可能还希望通过适当的标记器对文本进行预处理来删除标点符号

import nltk 
from nltk.util import ngrams
corpus = open("my.txt").read()
tokens = nltk.word_tokenize(corpus)
bigrams = ngrams(tokens,2)
print Counter(bigrams)
>>> x = nltk.sent_tokenize("The Monkeys like bananas. The sky is blue")
['The Monkeys like bananas.', 'The sky is blue.']

>>> for x in a:
...     list(nltk.bigrams(nltk.word_tokenize(x)))
...
[('The', 'Monkeys'), ('Monkeys', 'like'), ('like', 'bananas'), ('bananas', '.')]
[('The', 'sky'), ('sky', 'is'), ('is', 'blue')]