Con*_*nor 8 nlp python-3.x spacy
我有一个很大的(~50k)术语列表,其中许多关键短语/术语都有相应的首字母缩略词/缩写词。我需要一种快速查找缩写或扩展缩写(即 MS -> Microsoft )的方法,然后将其替换为完整的扩展缩写 + 缩写(即 Microsoft -> Microsoft (MS) 或 MS -> Microsoft (MS) ) .
我对 spaCy 很陌生,所以我的天真的方法是使用spacy_lookup并使用缩写和扩展缩写作为关键字,然后使用某种管道扩展然后通过匹配项并将它们替换为完全扩展缩写+缩写。
有没有更好的方法来标记和解析 spaCy 中的首字母缩略词/缩写词?
Dav*_*cco 10
在 GitHub 上查看scispacy,它实现了本文中描述的首字母缩略词识别启发式算法,(另请参见此处)。如果首字母缩略词在文本中以类似的模式“引入”,则启发式方法有效
StackOverflow (SO) 是一个面向专业和爱好者程序员的问答网站。太摇滚了!
一种用长格式替换一段文本中所有首字母缩略词的工作方法可能是
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4377 次 |
| 最近记录: |