如何在nltk中将字符串作为Bigrams的输入

时间:2016-06-07 19:19:00

标签: python

我是nltk的新手,我正在使用python。 我正在把字符串作为Bigrams的输入。当我展示这个项目。我把每个角色都当作一个词。

import nltk   
string = "Batman Superman"   
bigram = nltk.bigrams(string) 
print bigram.item() 
[('B','a'),('a','t'),('t','m'),('m','a'),('a','n'),('n',' '),(' ','S'),
('S','u'),('u','p'),('p','e'),('e','r'),('r','m')('m','a'),('a','n')] 

但我希望输出为[('蝙蝠侠','超人')] 请告诉我如何获取此输出仅将字符串作为输入 Bigrams功能但不作为输入列表。

1 个答案:

答案 0 :(得分:1)

好的,所以这里发生的是bigrams函数期待你的语料库的标记化版本,这是一个按顺序排列的单词列表。

当你传递一个字符串时,nltk正在尽力并将该字符串转换为字符列表,然后生成该列表的双字母组,恰好是字符对。

如果你想获得单词块的双字母,你需要像这样标记你的输入句子:

>>> string = "Batman Superman"
>>> tokenized = string.split(" ")
>>> list(nltk.bigrams(tokenized))
[('Batman', 'Superman')]