Python中的词性词性标注

2024-06-26 14:20:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着为每行中的每个单词做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车站的非常舒适的地方。我喜欢这个地方。\njose和vadym都很热情,对我也很好。\我希望能再留下来。','NNP'),('非常有帮助和沟通的主人。地理位置优越,交通便利。房间对一对夫妇来说太小了一点,而且很难受到缺少橱柜的感觉。\n\n其他地方都很干净,而且保养得很好。','NNP'),('一切都和描述的完全一样。它很漂亮。”,'NNP')]

我的代码有“标记器”,我不知道我的代码有什么问题。我需要每个单词的pos标签,而不是每行。但是每一行还是应该用括号之类的东西来分块(或区分开来)。在


Tags: 代码标记posimportfordatatag地方
1条回答
网友
1楼 · 发布于 2024-06-26 14:20:03

(从我的计算机上运行的纯复制粘贴)

运行代码(注意简单的import语句):

#!/usr/bin/env python3
# encoding: utf-8
import nltk
f = open('/home/matthieu/Téléchargements/testtext.txt')
data = f.readlines()

for line in data:
    tokens = nltk.word_tokenize(line)
    tagged = nltk.pos_tag(tokens)
    entities = nltk.chunk.ne_chunk(tagged)
    print(entities)
f.close()

在以下unicode原始文本文件(3行):

^{pr2}$

我得到以下结果:

(S
(/(
this/DT
is/VBZ
a/DT
first/JJ
example/NN
./.
)/)
(/(
Another/DT
sentence/NN
in/IN
another/DT
parentheses/NNS
./.
)/))
(S (/( onlyone/NN in/IN that/DT line/NN )/))
(S
this/DT
...

如你所见,没有什么特别的问题。 你的csv数据解析正确吗?csv对你有用吗?你试过用一个简单的文本文件吗?在

相关问题 更多 >