MFlow01-中英文指代消解模块

张开发
2026/4/21 21:53:04 15 分钟阅读

分享文章

MFlow01-中英文指代消解模块
MFlow01-中英文指代消解模块源码解读https://github.com/FlowElement-ai/m_flow拆解代码https://gitee.com/enzoism/python_mflow_coreference中文指代消解Coreference Resolution模块用于将文本中的代词替换为具体实体。功能特性中文分词与实体识别人名识别称谓识别地点识别物品识别时间识别指代消解人称代词消解他/她/它指示代词消解这里/那里时间代词消解那时候/这时序数词消解前者/后者时间归一化相对时间转绝对时间如昨天转为具体日期范围实体规范化别名映射到规范名称安装# 使用 uv 安装依赖uvsync# 或使用 pippipinstall-e.快速开始1. 基础指代消解fromcoreference_chimportresolve text小明去北京。他在那里工作。resultresolve(text)print(result)# 小明去北京。小明在北京工作。2. 详细消解结果包含替换记录fromcoreference_chimportCoreferenceResolver resolverCoreferenceResolver()resolved,replacementsresolver.resolve_text(小明去北京。他在那里工作。)print(resolved)print(replacements)resolver.reset()3. 结构化输出用于记忆引擎fromcoreference_chimportCoreferenceResolver resolverCoreferenceResolver()outputresolver.resolve_text_structured(去年我去了北京。那时候天气很好。)print(output.resolved_text)# 消解后的文本print(output.mentions)# 实体提及列表含位置print(output.time_extractions)# 时间归一化结果4. 时间归一化fromcoreference_chimportnormalize_timefromdatetimeimportdatetime resultnormalize_time(昨天,datetime(2026,1,12))print(result.start_dt,result.end_dt,result.precision)5. 实体提取fromcoreference_chimportNERService,extract_mentions# 方式1使用服务类serviceNERService()mentionsservice.extract_mentions(小明在学校读书)# 方式2使用便捷函数mentionsextract_mentions(小明在学校读书)6. 实体规范化fromcoreference_chimportcreate_canonicalizer alias_map{PER_NAME:{小张:张三}}canonicalizercreate_canonicalizer(alias_map)resultcanonicalizer.canonicalize(小张,PER_NAME)print(result.canonical_text)# 张三测试项目使用 pytest 进行测试包含以下测试文件测试文件说明测试文件说明test_coref_golden.py指代消解黄金标准测试回归测试test_tokenizer_golden.py分词器黄金标准测试test_time_golden.py时间归一化测试test_english_golden.py英文指代消解测试test_coref_branches.py边界情况分支测试运行测试# 运行所有测试pytest# 运行特定测试文件pytest tests/test_coref_golden.py# 运行特定测试类pytest tests/test_coref_golden.py::TestBasicResolution# 运行特定测试用例pytest tests/test_coref_golden.py::TestBasicResolution::test_person_pronoun# 显示详细输出pytest-v# 显示打印输出pytest-s# 生成覆盖率报告pytest--covcoreference_ch测试分组说明test_coref_golden.py测试分组基础代词消解(TestBasicResolution)人称代词他/她地点代词那里物主代词他的宾语代词它复数代词(TestPluralResolution)复数人称代词他们复数物主代词他们的语义角色(TestSemanticRole)施事/受事检测批评场景被批评者难过帮助场景被帮助者感激非消解情况(TestNonResolution)首句无先行词反身代词自己泛指代词人家约束变量句内绑定引号内代词重叠结构(TestReduclicative)冗余代词删除时间代词(TestTimeResolution)时间代词消解无先行词时间代词序数代词(TestOrdinalResolution)前者/后者消解安全检查(TestSafety)空输入无代词文本纯标点无句末标点流式消解(TestStreamResolution)增量式消解重置功能结构化输出(TestStructuredOutput)结构化输出字段项目结构mflow01_coreference_ch/ ├── coreference_ch/ # 核心模块 │ ├── __init__.py # 模块入口 │ ├── tokenizer.py # 中文分词器 │ ├── coreference.py # 指代消解核心逻辑 │ ├── ner_adapter.py # 实体识别适配器 │ ├── syntax_adapter.py # 句法分析适配器 │ ├── time_normalizer.py # 时间归一化 │ └── canonicalizer.py # 实体规范化 ├── tests/ # 测试目录 │ ├── conftest.py # pytest 配置和 fixtures │ ├── test_coref_golden.py │ ├── test_tokenizer_golden.py │ ├── test_time_golden.py │ ├── test_english_golden.py │ └── test_coref_branches.py ├── main.py # 示例入口 ├── pyproject.toml # 项目配置 └── README.md技术架构输入文本 → jieba分词 → 规则修正 → HMM词性标注 → 实体分类 → 指代消解 → 输出依赖项Python 3.11.4jieba 0.42.1pytest 9.0.3版本当前版本v3.0.0作者Coreference Resolution System

更多文章