实体标识
Identify whether two sets of data are from the same entity. 识别两组数据是否来自同一主体
This is a MCP (Model Context Protocol) server. 这是一个支持MCP协议的服务器。
数据比较工具
该工具提供了一种全面的方法来比较两组数据,评估其值的精确和语义相等性。它利用文本规范化和语言模型来确定数据是否来自同一实体。
特性
- 文本标准化:将文本转换为小写,删除标点符号,并规范空白。
- 值比较:直接和语义上比较值(忽略列表的顺序)。
- JSON遍历:遍历JSON对象中的每个键并比较相应的值。
- 语言模型集成:使用生成语言模型来评估语义相似性,并最终判断数据是否来自同一实体。
安装
要使用此工具,请确保安装了必要的依赖项。您可以使用pip安装它们:
pip install genai用法
函数
- normalize_text(文本):
- 通过将输入文本转换为小写、删除标点符号和规范空白来规范化输入文本。
- 比较值(val1,val2):
- 精确地和语义地比较两个值。 - 如果值是列表,则忽略语义比较的元素顺序。
- compare.json(json1、json2):
- 逐键比较两个JSON对象。 - 用途 compare_values 评估每个键的值。 - 整合语言模型以评估语义相似性,并提供最终判断。
示例
import json
import genai
import re
# Define your JSON objects
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"]
}
# Compare the JSON objects
comparison_results = compare_json(json1, json2)
# Generate final matching result
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)贡献
欢迎投稿!请打开问题或提交拉取请求。
许可证
该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。
联系
如果您有任何问题或建议,请联系我:
- 电子邮件:u3588064@connect.hku.hk
- github: u3588064@connect.hku.hk。
微信
