这是本文档旧的修订版!
Xin An, Jinghong Li, Shuo Xu, Liang Chen, and Wei Sun, 2021. An Improved Patent Similarity Measurement based on Entities and Semantic Relations. Journal of Informetrics.
安装好模块后,进入python环境,下载wordnet资源:
> import nltk > nltk.download('wordnet') > nltk.download("wordnet_ic")
code_review:
├─ TFH_Annotated_Dataset
│ ├─ 4036723.ann
│ ├─ 4036723.txt
│ ├─ 4040113.ann
│ ├─ 4040113.txt
│ ├─ …
│ └─ …
├─ gen_similarity_matrix.py
├─ gen_similarity_score.py
├─ gen_weight.py
├─ save_ERE.py
├─ ot.c
├─ ot.m
├─ ot_mex.c
├─ ot_mex.mexw64
├─ word_sim_dict.pickle
└─ readme.md
测试数据来源:https://github.com/awesome-patent-mining/TFH_Annotated_Dataset
该数据集来自硬盘驱动器领域的薄膜磁头子领域,总共包含1010个相关专利的标题摘要(.txt)及其相应的标注信息(.ann)。
下载以上数据,并保存在TFH_Annotated_Dataset文件夹下,下面将根据论文所提出的方法计算数据集专利之间的相似度。
运行文件save_ERE.py在原始文件中读取序列结构并保存,该步骤生成两个文件ERE.json和patent_list.json,前者保存了序列结构信息,后者保存了专利代码信息。
> python ./save_ERE.py
运行文件gen_similaity_matrix.py计算两两专利之间序列结构的相似性矩阵,并保存在similarity_matrix文件夹下(该文件夹下的文件以专利代码命名,保存该专利与其他所有专利的相似度矩阵信息)
python ./gen_similarity_matrix.py
Note:
1)根据序列结构的关系确定语义方向,并修改gen_similarity_matrix.py文件中的一下语句:
if __name__ == "__main__": ... # 本数据集中关系对应的语义方向 underection = ['Spatial', 'Alias', 'Comparison', 'Others'] left = ["PartOf", "Causitive", "Oper", "MadeOf", "Attr", "Generate", "Purpose", "Manner", "Measurement"] right = ["Form", "InstanceOf"] ...
评论