amrlib
一个使AMR解析、生成和可视化变得简单的Python库。
有关最新文档,请参阅**ReadTheDocs**。
**!! 注意:**模型必须单独下载和安装。请参阅安装说明。
关于
amrlib是一个Python模块,旨在通过提供以下功能使抽象意义表示(AMR)处理变得简单:
- 句子到图(StoG)解析,将英语句子转换为AMR图。
- 图到句子(GtoS)生成,将AMR图转换为英语句子。
- 基于QT的图形用户界面,方便句子到图和图到句子的转换。
- 在GUI和库函数中绘制AMR图的方法。
- 用于StoG和GtoS模型的训练和测试代码。
- SpaCy扩展,允许直接将SpaCy的
Docs
和Spans
转换为AMR图。 - 句子到图对齐例程
- FAA_Aligner(Fast_Align算法),基于ISI对齐器代码,详见此论文。
- RBW_Aligner(基于规则的词对齐),用于简单的单个标记到单个节点的对齐。
- 评估指标API,包括...
- Smatch(多进程,带有增强/详细得分)用于图解析
关于smatch评分请参见底部注释 - 用于句子生成的BLEU
- 对齐评分指标,详细说明精确度/召回率
- Smatch(多进程,带有增强/详细得分)用于图解析
AMR模型
系统包含用于解析和生成的不同神经网络模型。**!! 注意:**模型必须单独下载和安装。 所有解析和生成模型的下载链接请参见amrlib-models。
-
解析(StoG)model_parse_xfm_bart_large在LDC2020T02上达到83.7 SMATCH分数。
有关解析模型的技术描述,请参见其wiki页面 -
生成(GtoS)generate_t5wtense在带时态标记的LDC2020T02上达到54 BLEU,在未标记的LDC2020T02上达到44 BLEU。
AMR查看器
GUI允许简单地查看、转换和绘制AMR图。
AMR共指消解
该库不包含AMR共指消解的代码,但有一个相关项目amr_coref。
以下论文的GitHub项目/代码具有类似或更好的得分:
要求和安装
该项目在Python 3和Ubuntu下构建和测试,但应该可以在任何Linux、Windows、Mac等系统上运行。
有关设置详情,请参阅安装说明。
库使用
将句子转换为图:
import amrlib
stog = amrlib.load_stog_model()
graphs = stog.parse_sents(['这是对系统的测试。', '这是第二句话。'])
for graph in graphs:
print(graph)
将图转换为句子:
import amrlib
gtos = amrlib.load_gtos_model()
sents, _ = gtos.generate(graphs)
for sent in sents:
print(sent)
详细说明请参阅模型API。
作为Spacy扩展使用
要作为扩展使用,您需要spaCy 2.0或更高版本。设置扩展并使用它:
import amrlib
import spacy
amrlib.setup_spacy_extension()
nlp = spacy.load('en_core_web_sm')
doc = nlp('这是对SpaCy扩展的测试。测试包含多个句子。')
graphs = doc._.to_amr()
for graph in graphs:
print(graph)
详细说明请参阅Spacy API。
释义
有关如何使用该库进行释义的示例,请参阅文档中的释义部分。
SMATCH评分
amrlib使用smatch库进行评分。 这是最常用于评分AMR解析器并在文献中报告结果的库。 在某些情况下,代码可能会给出不一致或错误的结果。 您可能希望查看smatchpp以获得改进的评分算法。
问题
如果您发现错误,请在GitHub问题列表上报告。 此外,如果您有功能请求或问题,也可以随时在那里发布。我很乐意考虑建议和Pull Request以增强模块的功能和可用性。