gpt4 book ai didi

python - 强制 spaCy 引理为小写

转载 作者:行者123 更新时间:2023-12-04 08:36:58 24 4
gpt4 key购买 nike

是否可以将标记文本保留为 true 大小写,但强制使引理小写?我对此很感兴趣,因为我想使用 PhraseMatcher我通过管道运行输入文本,然后在该文本上搜索匹配的短语,其中每个搜索查询都可以区分大小写。在我通过引理搜索的情况下,我希望搜索默认不区分大小写。
例如

doc = nlp(text)

for query in queries:
if case1:
attr = "LEMMA"
elif case2:
attr = "ORTH"
elif case3:
attr = "LOWER"
phrase_matcher = PhraseMatcher(self.vocab, attr=attr)
phrase_matcher.add(key, query)
matches = phrase_matcher(doc)
在第 1 种情况下,我希望匹配不区分大小写,并且如果 spaCy 库中有一些东西可以强制默认情况下使引理小写,这将比保留多个版本的文档并强制一个人拥有所有版本更有效小写字符。

最佳答案

spacy 的这部分是从版本到版本的变化,上次看词形还原是几个版本之前的。所以这个解决方案可能不是最优雅的解决方案,但它绝对是一个简单的解决方案:

# Create a pipe that converts lemmas to lower case:
def lower_case_lemmas(doc) :
for token in doc :
token.lemma_ = token.lemma_.lower()
return doc

# Add it to the pipeline
nlp.add_pipe(lower_case_lemmas, name="lower_case_lemmas", after="tagger")
您需要弄清楚要将其添加到管道中的哪个位置。最新的文档提到 Lemmatizer使用 POS 标记信息,所以我不确定在什么时候调用它。将管道放在 tagger 之后是安全的,到那时应该弄清楚所有引理。
我能想到的另一个选择是从 Lemmatizer 派生自定义词形还原器类并覆盖其 __call__方法,但这可能会非常具有侵入性,因为您需要弄清楚如何(以及在​​何处)插入您自己的词形还原器。

关于python - 强制 spaCy 引理为小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64758759/

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