使用具有多行的语料库中的NLTK创建双字母组

时间:2016-08-11 21:14:26

标签: python nltk

我试图从多行的语料库中生成双字母组。 Bigrams是在换行符中创建的,这是一个问题,因为每一行代表它自己的上下文,并且与后续行无关。这会导致语法不正确的双字母。

语料库

Reeves Acrylfarbe 75Ml Ultramarin 
Acrylfarbe Deep Peach 
Reeves Acrylfarbe 75Ml Grasgrün 
Acrylfarbe Antique Go 

有问题的双字母组的示例

  

'Ultramarin Acrylfarbe','GrasgrünAcrylfarbe'

这是我正在使用的代码:

finder = BigramCollocationFinder.from_words(word_tokenize(corpus))
bigrams = finder.nbest(bigram_measures.likelihood_ratio, 100)

如何省略跨越两行的双字母组合?

2 个答案:

答案 0 :(得分:1)

我相信这样的事情应该有效:

finder = nltk.BigramCollocationFinder.from_documents([
    nltk.word_tokenize(x) for x in corpus.split('\n')])
bigrams = finder.nbest(bigram_measures.likelihood_ratio, 100)

答案 1 :(得分:0)

我会在' \ n'上使用split得到一个行列表然后分别处理每一行并组合双字母列表