返回 MCP 目录
public公开dns本地运行

Entity Resolution

数据对比工具,通过文本归一化和语义分析判断两组数据是否来自同一主体。

article

README

🚀 实体识别

本项目旨在识别两组数据是否来自同一主体,同时它还是一个支持MCP(模型上下文协议)的服务器,为数据比较提供了强大的支持。

🚀 快速开始

本项目提供了一个数据比较工具,能全面比较两组数据,评估其值的精确和语义相等性,借助文本规范化和语言模型来判断数据是否源自同一主体。

✨ 主要特性

  • 文本规范化:将文本转换为小写,移除标点符号,并标准化空格。
  • 值比较:对两个值进行精确和语义上的比较(忽略列表元素顺序)。
  • JSON遍历:逐个遍历每个JSON对象的键,并比较对应的值。
  • 语言模型整合:利用生成式语言模型评估语义相似性,并最终判断数据是否来自同一主体。

📦 安装指南

要使用此工具,请确保安装了必要的依赖项。您可以使用pip进行安装:

pip install genai

💻 使用示例

基础用法

本工具提供了几个核心函数,下面是这些函数的介绍及使用示例:

import json
import genai
import re

# 定义您的JSON对象
json1 = {
    "name": "John Doe",
    "address": "123 Main St, Anytown, USA",
    "hobbies": ["reading", "hiking", "coding"]
}

json2 = {
    "name": "john doe",
    "address": "123 Main Street, Anytown, USA",
    "hobbies": ["coding", "hiking", "reading"]
}

# 比较JSON对象
comparison_results = compare_json(json1, json2)

# 生成最终匹配结果
model1 = genai.GenerativeModel("gemini-2.0-flash-thinking-exp")
result_matching = model1.generate_content("综合这些信息,你认为可以判断两个数据来自同一主体吗?"+json.dumps(comparison_results, ensure_ascii=False, indent=4))
print(result_matching.text)

函数说明

  1. normalize_text(text)

    • 对输入文本进行规范化处理,将其转换为小写,移除标点符号,并标准化空格。
  2. compare_values(val1, val2)

    • 对两个值进行精确和语义上的比较。
    • 如果值是列表,则在语义比较时忽略元素顺序。
  3. compare_json(json1, json2)

    • 逐个键比较两个JSON对象。
    • 使用compare_values评估每个键的值。
    • 整合语言模型来评估语义相似性,并提供最终判断数据是否来自同一主体的结果。

🤝 贡献

欢迎贡献!请打开问题或提交拉取请求。

📄 许可证

该项目采用MIT许可证。有关详细信息,请参阅 LICENSE 文件。

📞 联系方式

如果您有任何问题或建议,请通过以下方式联系我:

微信 qrcode_for_gh_643efb7db5bc_344(1)

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端