NLTK双字母格式化/逐字阅读文件

时间:2017-12-22 12:08:31

标签: python nltk

我得到单词对,然后创建节点链接图。

要使我的节点链接图工作,我的对需要以这种格式出现

graph = ('one','two'),('two','three'),('three','one')

我在使用NTLK进行配对或我如何阅读文件时出错了

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')]

1 个答案:

答案 0 :(得分:0)

你的第一个解决方案已经结束了。 为什么加入?

这是一个解决问题的例子

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')]