gpt4 book ai didi

python - 使用 NLTK 或类似工具将名词分类为抽象名词或具体名词

转载 作者:太空狗 更新时间:2023-10-30 00:17:15 25 4
gpt4 key购买 nike

如何在 Python 中将名词列表分类为抽象名词或具体名词?

例如:

"Have a seat in that chair."

在上面的句子中,chair 是名词,可以归类为具体。

最佳答案

我建议使用预训练词向量训练分类器。

您需要两个库:spacy 用于标记文本和提取词向量,以及 scikit-learn 用于机器学习:

import spacy
from sklearn.linear_model import LogisticRegression
import numpy as np
nlp = spacy.load("en_core_web_md")

区分具体名词和抽象名词是一项简单的任务,因此您可以用很少的示例训练模型:

classes = ['concrete', 'abstract']
# todo: add more examples
train_set = [
['apple', 'owl', 'house'],
['agony', 'knowledge', 'process'],
]
X = np.stack([list(nlp(w))[0].vector for part in train_set for w in part])
y = [label for label, part in enumerate(train_set) for _ in part]
classifier = LogisticRegression(C=0.1, class_weight='balanced').fit(X, y)

当您拥有经过训练的模型时,您可以将其应用于任何文本:

for token in nlp("Have a seat in that chair with comfort and drink some juice to soothe your thirst."):
if token.pos_ == 'NOUN':
print(token, classes[classifier.predict([token.vector])[0]])

结果看起来令人满意:

# seat concrete
# chair concrete
# comfort abstract
# juice concrete
# thirst abstract

您可以通过将模型应用于不同的名词、发现错误并将它们添加到正确标签下的训练集来改进模型。

关于python - 使用 NLTK 或类似工具将名词分类为抽象名词或具体名词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28575082/

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