如何让spacy更有可能将名词标记为动词?

问题描述 投票:0回答:1

这是我的代码

spacy==3.6.1

import spacy

try:
    nlp = spacy.load("en_core_web_sm")
except Exception as e:
    print(f"An error occurred: {str(e)}")
    print(
        print(
            "SpaCy model not found. Please run `python -m spacy download en_core_web_sm`"
        )
    )

doc = nlp("Buy groceries.")
for sent in doc.sents:
    print(f"Sentence: {sent.text}")
    for token in sent:
        print(f"{token.text}: {token.pos_}")

它将

Buy
标记为名词。

我知道这叫做歧义。我如何使任何不明确的动词/名词都偏重于动词?

尤其是如果它后面跟着另一个名词并且前面是 PUNC 或位于句子开头。

spacy
1个回答
0
投票

我在使用小型 spacy 模型时遇到了这种歧义,我建议您使用大型模型“en_core_web_lg”,因为它们更强大,并且会将 POS 标记“购买”作为动词。但是,如果您仍然想使用“en_core_web_sm”,并且您的文本包含指令结构(例如,买这个,做这个等),我建议您将输入句子更改为小写。

doc = nlp("Buy groceries.".lower())

警告:这种小写黑客可能并不适用于所有情况。

© www.soinside.com 2019 - 2024. All rights reserved.