python - 如何将 NLTK 标签转换为 wordnet 标签
问题描述
我正在努力将 NLTK 标签转换为 wordnet 标签。我有一个名为“tokens”的系列对象,在“tokens”内部是一系列不同长度的包含标记化和 NLTK 标记的推文内容。例如:
[('sitting', 'VBG'), ('democrat', 'NN'), ('senator', 'NN'), ('trial', 'NN'), ('corruption', 'NN'), ('barely', 'RB'), ('heard', 'JJ'), ('peep', 'NN'), ('mainstream', 'NN'), ('media', 'NNS')]
下面是我试图用 wordnet 标签替换 NLTK 标签的代码,但出现错误:
太多值无法解包(预期 2)
tokens = tokens['tokens'].apply(lambda v: nltk.pos_tag(v))
lemmatizer = WordNetLemmatizer()
for tokenlist in tokens:
for token in tokenlist:
for (word, tag) in token:
if tag.startswith('J'):
tag = 'a'
elif tag.startswith('V'):
tag = 'v'
elif tag.startswith('R'):
tag = 'r'
elif tag.startswith('N'):
tag = 'n'
else:
tag = 'n'
lemmatizer.lemmatize(word, pos=tag)
完整追溯:
Traceback (most recent call last):
File "<ipython-input-122-0502b4ebc79b>", line 4, in <module>
for (word, tag) in token:
ValueError: too many values to unpack (expected 2)
如果我的“if/elif/else”条件得到满足,我是否认为我可以简单地将“tag”的值设置为 wordnet 标签字母?
解决方案
推荐阅读
- c++ - C ++钩子键盘键按下并释放键
- python-3.x - 在 python3 中通过套接字发送 .mp4 文件
- node.js - nodemon 和 live-server 有什么区别?
- r - 不正确地将chr转换为R中的数字变量
- c++ - 由 glUniformMatrix4fv 创建时,Uniform mat4 具有未知值
- python - 计算图像中对象的中心
- java - 在主机对象上设置方法
- python - Keras 自定义损失函数:形状为 batch_size (y_true) 的变量
- clojure - 使用循环重复计算胜率
- javascript - 正则表达式,匹配所有内容,除了双星号