NLTK二元组格式/逐字阅读文件

问题描述 投票:0回答:1

我正在获取单词对,然后创建一个节点链接图。

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

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')]
python nltk
1个回答
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')]
© www.soinside.com 2019 - 2024. All rights reserved.