【发布时间】:2017-09-05 15:13:26
【问题描述】:
我正在尝试为每行中的每个单词做 pos 标记(每行包含几个句子)。
我有这个代码:
import nltk import pos_tag
import nltk.tokenize import word_tokenize
f = open('C:\Users\test_data.txt')
data = f.readlines()
#Parse the text file for NER with POS Tagging
for line in data:
tokens = nltk.word_tokenize(line)
tagged = nltk.pos_tag(tokens)
entities = nltk.chunk.ne_chunk(tagged)
print entities
f.close()
但代码为每一行给出了一个标签,输出如下所示:
[('公寓是全新的,干净整洁。', 'NNP'), ('"山上的小地方很棒。"', 'NNP'), ('非常舒适的地方靠近fatima luas stop。我喜欢这个地方。\njose 和 vadym 非常热情,对我很好。\n希望会再次入住。', 'NNP'), ('非常乐于助人和善于沟通的主人。地理位置优越,与公共交通便利交通 . 房间对一对夫妇来说有点太小了,感觉没有橱柜。\n\n其他地方都很干净,维护得很好。', 'NNP'), ('一切都和描述的一样。很漂亮。' , 'NNP')]
我的代码有“tokenizer”,我不知道我的代码有什么问题。我需要每个单词而不是每一行的 pos 标签。但是仍然应该用括号或类似的东西对每一行进行分块(或区分)。
【问题讨论】:
-
我的电脑上python3没有问题。不知道怎么回事……
-
@mquantin,我对 python 3 也没有问题,但是代码给了我上面的输出,这是行级 pos 标记。您是否获得了单词级别的 pos 标记,这意味着每个单词都有一个 pos 标记?
-
@mquantin,仅供参考,在我的数据集中,括号中的句子存储在一行中。这可能就是为什么给括号中的句子加上一个 pos 标签的原因。
-
是的,我得到了单词级别的 PoS 标签,括号被分块和 PoS 标记(如
() -
@mquantin 你能告诉我结果吗?结果如何?另外,您存储的数据是什么样的?在我的数据中,每个括号中的句子以 csv 格式存储在一行中。我真的需要得到和你一样的结果,所以非常感谢你的回答。
标签: python tokenize pos-tagger