我是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功能但不作为输入列表。
答案 0 :(得分:1)
好的,所以这里发生的是bigrams
函数期待你的语料库的标记化版本,这是一个按顺序排列的单词列表。
当你传递一个字符串时,nltk
正在尽力并将该字符串转换为字符列表,然后生成该列表的双字母组,恰好是字符对。
如果你想获得单词块的双字母,你需要像这样标记你的输入句子:
>>> string = "Batman Superman"
>>> tokenized = string.split(" ")
>>> list(nltk.bigrams(tokenized))
[('Batman', 'Superman')]