gpt4 book ai didi

python-3.x - 如何识别缩写词/首字母缩略词并在 spaCy 中扩展它们?

转载 作者:行者123 更新时间:2023-12-02 02:50:09 29 4
gpt4 key购买 nike

我有一个很大的(~50k)术语列表,其中许多关键短语/术语都有相应的首字母缩略词/缩写词。我需要一种快速查找缩写或扩展缩写(即 MS -> Microsoft )的方法,然后将其替换为完整的扩展缩写 + 缩写(即 Microsoft -> Microsoft (MS) 或 MS -> Microsoft (MS) ) .

我对 spaCy 很陌生,所以我天真的方法是使用 spacy_lookup并使用缩写和扩展缩写作为关键字,然后使用某种 pipeline extension然后通过匹配并用完整的扩展缩写+缩写替换它们。

有没有更好的方法来标记和解析 spaCy 中的首字母缩略词/缩写词?

最佳答案

退房 scispacy在 GitHub 上,它实现了 this paper 中描述的首字母缩写词识别启发式方法,(另见 here)。如果首字母缩略词在文本中以类似的模式“引入”,则启发式方法有效

StackOverflow (SO) is a question and answer site for professional and enthusiast programmers. SO rocks!



一种用长格式替换一段文本中所有首字母缩略词的工作方法可能是
import spacy
from scispacy.abbreviation import AbbreviationDetector

nlp = spacy.load("en_core_web_sm")

abbreviation_pipe = AbbreviationDetector(nlp)
nlp.add_pipe(abbreviation_pipe)

text = "StackOverflow (SO) is a question and answer site for professional and enthusiast programmers. SO rocks!"

def replace_acronyms(text):
doc = nlp(text)
altered_tok = [tok.text for tok in doc]
for abrv in doc._.abbreviations:
altered_tok[abrv.start] = str(abrv._.long_form)

return(" ".join(altered_tok))

replace_acronyms(text)

关于python-3.x - 如何识别缩写词/首字母缩略词并在 spaCy 中扩展它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52570805/

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