我正在获取单词对,然后创建一个节点链接图。
为了使我的节点链接图工作,我的对需要以这种格式出现
graph = ('one','two'),('two','three'),('three','one')
我要么弄错我是如何使用NLTK进行配对,要么是我正在阅读文件
f = open("test.txt","r")
string = f.read()
tokens = nltk.word_tokenize(string)
pairs = [ " ".join(pair) for pair in nltk.bigrams(tokens)]
print (pairs)
#['one two', 'two three', 'three one']
这里只是尝试以不同的方式进行,但现在它正逐字符地读取文件
f = open("test.txt","r")
string = f.read()
a = nltk.bigrams(string)
print (list(a))
#[('o', 'n'), ('n', 'e'), ('e', ' '), (' ', 't'), ('t', 'w'), ('w', 'o'), ('o', ' '), (' ', 't'), ('t', 'h'), ('h', 'r'), ('r', 'e'), ('e', 'e'), ('e', ' '), (' ', 'o'), ('o', 'n'), ('n', 'e')]
现在尝试逐字阅读文件
with open('test.txt','r') as f:
for line in f:
for word in line.split(" "):
print (word)
但现在这是在一条不同的线上逐字逐句地做,所以现在我得到了
#[('o', 'n'), ('n', 'e')]
你的第一个解决方案是关闭为什么要加入?
这是一个解决您的问题的示例
import nltk
test = "one two tree four"
test_token = nltk.word_tokenize(test)
print(test_token)
bgram= nltk.bigrams(test_token)
print(list(bgram))
生产:
['one', 'two', 'tree', 'four']
[('one', 'two'), ('two', 'tree'), ('tree', 'four')]