gpt4 book ai didi

python - 为什么 Python NLTK 在西类牙语中无法正确标记?

转载 作者:行者123 更新时间:2023-11-30 08:57:48 26 4
gpt4 key购买 nike

我有以下代码:

import nltk

sent='El gato está bajo la mesa de cristal.'
nltk.pos_tag(word_tokenize(sent), lang='spa')

但是输出根本不准确:

[('El', 'NNP'),
('gato', 'NN'),
('está', 'NN'),
('bajo', 'NN'),
('la', 'FW'),
('mesa', 'FW'),
('de', 'FW'),
('cristal', 'NN'),
('.', '.')]

例如,es 应该归类为动词。

如果我尝试使用英语短语进行相同的操作:

import nltk

sent='The cat is under the cristal table.'
nltk.pos_tag(word_tokenize(sent), lang='spa')

工作正常:

[('The', 'DT'),
('cat', 'NN'),
('is', 'VBZ'),
('under', 'IN'),
('the', 'DT'),
('cristal', 'NN'),
('table', 'NN'),
('.', '.')]

请注意,我已经下载了所有 nltk 资源。你能告诉我我在这里缺少什么,所以单词标签在西类牙语中不起作用吗?

最佳答案

我找到了the following solution

from nltk.tag import StanfordPOSTagger
jar = 'D:/Downloads/stanford-postagger-full-2018-10-16/stanford-postagger-3.9.2.jar'
model = 'D:/Downloads/stanford-postagger-full-2018-10-16/models/spanish.tagger'

import os
java_path = "C:/Program Files/Java/jre1.8.0_191/bin/java.exe"
os.environ['JAVAHOME'] = java_path

pos_tagger = StanfordPOSTagger(model, jar, encoding='utf8' )
pos_tagger.tag('El gato está bajo la mesa de cristal'.split())

结果:

[('El', 'da0000'),
('gato', 'nc0s000'),
('está', 'vmip000'),
('bajo', 'sp000'),
('la', 'da0000'),
('mesa', 'nc0s000'),
('de', 'sp000'),
('cristal', 'nc0s000')]

关于python - 为什么 Python NLTK 在西类牙语中无法正确标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52920179/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com