WW2 spaCy 是一个用于处理二战原始史料和二手文献,并执行命名实体识别(NER)的管道。目前,该管道专注于基于美国军队的命名实体识别,并计划在未来扩展到其他国家。注意: 该管道的更新频繁,以扩展其标签集并提高规则的准确性。
该管道设计为不依赖机器学习,以保持其模块化特性,这意味着用户可以提取特定的处理模块并将其无缝地附加到自己的管道中。其主要组件是一个 SpanRuler,用于识别和分类不同的军事单位、舰船、飞机、坦克和战役。完整的实体列表见下文。此外,还使用了自定义的正则表达式组件来识别军事人员。最后,几个自定义组件会清理识别出的文本片段,以移除潜在或可能的误报。
为了消除某些实体的歧义(例如“the 1st”),一个名为 clean_spans 的自定义 spaCy 组件会遍历每个文本片段。如果某个标签存在歧义,它会优先选择最长的文本片段。然而,如果片段长度相同,则不会采取措施来解析这些片段。这让用户能够自行消歧。这使得该管道比 spaCy 内置的 filter_spans() 函数更精细、更具针对性。
每个数据文件都可以在 assets 目录下找到。每个 .txt 文件的第一行是数据的来源。大部分数据来自维基百科上的列表。
pip install en_ww2spacyimport spacy
from spacy import displacy
nlp = spacy.load("en_ww2spacy")
text = """The P-35 flew in WW2 at Battle of Point 175.
The 10th Armored Division was led by General William H. H. Morris.
It contained Sherman tanks. John Sherman is a false positive."""
doc = nlp(text)
displacy.render(doc, style="span", jupyter=True, options = {"spans_key": "ruler"})原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。