Nlp N-gram忽略换行符
我对nltk比较陌生,但最近我遇到了一个问题,似乎找不到解决办法 我有一篇这样的文章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) 你错过
猴子喜欢香蕉。
天空是蓝色的。
我正在尝试制作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')]