用户工具

站点工具


zh:notes:patent_similarity

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
zh:notes:patent_similarity [2021/01/13 17:34]
pzczxs [Content Tree]
zh:notes:patent_similarity [2022/01/27 08:23] (当前版本)
pzczxs 讨论状态变化了
行 2: 行 2:
  
 ===== Citation Information ===== ===== Citation Information =====
-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//​.+Xin An, Jinghong Li, Shuo Xu, Liang Chen, and Wei Sun, 2021. [[https://​doi.org/​10.1016/​j.joi.2021.101135|An Improved Patent Similarity Measurement based on Entities and Semantic Relations]]. //Journal of Informetrics//​, Vol. 15, No. 2, pp. 101135
  
 ===== Requirements ===== ===== Requirements =====
行 16: 行 16:
 > nltk.download("​wordnet_ic"​) > nltk.download("​wordnet_ic"​)
 </​code>​ </​code>​
-  *Matlab 2018b以上版本,并配置好python环境,可参考:https://​zhuanlan.zhihu.com/​p/​47655091+  *Matlab 2018b以上版本,并配置好Python环境,可参考:https://​zhuanlan.zhihu.com/​p/​47655091
 ===== Content Tree ===== ===== Content Tree =====
 code_review:​ \\ code_review:​ \\
行 38: 行 38:
  
 ===== Data Source ===== ===== Data Source =====
 +测试数据来源:https://​github.com/​awesome-patent-mining/​TFH_Annotated_Dataset
  
 +该数据集来自硬盘驱动器领域的薄膜磁头子领域,总共包含1010个相关专利的标题摘要(.txt)及其相应的标注信息(.ann)。
 +
 +下载以上数据,并保存在<​color red>​TFH_Annotated_Dataset</​color>​文件夹下,下面将根据论文所提出的方法计算数据集专利之间的相似度。
 +
 +===== Data Processing =====
 +==== Step 1: 数据预处理 ====
 +运行文件<​color red>​save_ERE.py</​color>​在原始文件中读取序列结构并保存,该步骤生成两个文件<​color red>​ERE.json</​color>​和<​color red>​patent_list.json</​color>​,前者保存了序列结构信息,后者保存了专利代码信息。
 +
 +<code python>
 +> python ./​save_ERE.py
 +</​code>​
 +
 +==== Step 2: 计算专利相似度矩阵 ====
 +运行文件<​color red>​gen_similaity_matrix.py</​color>​计算两两专利之间序列结构的相似性矩阵,并保存在<​color red>​similarity_matrix</​color>​文件夹下(该文件夹下的文件以专利代码命名,保存该专利与其他所有专利的相似度矩阵信息)
 +
 +<code python> ​
 +python ./​gen_similarity_matrix.py
 +</​code>​
 +
 +Note: \\
 +1)根据序列结构的关系确定语义方向,并修改<​color red>​gen_similarity_matrix.py</​color>​文件中的一下语句:
 +<code python>
 +if __name__ == "​__main__":​
 +    ...
 +    # 本数据集中关系对应的语义方向
 +    underection = ['​Spatial',​ '​Alias',​ '​Comparison',​ '​Others'​]
 +    left = ["​PartOf",​ "​Causitive",​ "​Oper",​ "​MadeOf",​ "​Attr",​ "​Generate",​ "​Purpose",​ "​Manner",​ "​Measurement"​]
 +    right = ["​Form",​ "​InstanceOf"​]
 +    ...
 +</​code>​
 +
 +2)每两个单词之间的相似度都是基于WordNet计算而得,而通过API频繁调用WordNet会导致程序计算效率低下,因此用<​color red>​word_sim_dict.pickle</​color>​文件记录已经计算过的单词之间的相似度。该数据集第一次运行程序时,计算1010个专利两两之间的相似度矩阵大约需要四五天时间,当把所有需要通过WordNet比较的单词相似度记录下来后,只要不修改WordNet的设定,以后重跑时可以直接读取单词的相似度,只需花费几小时即可。
 +
 +==== Step 3: 计算序列结构权重 ====
 +运行文件<​color red>​gen_weight.py</​color>​以计算每个专利各个序列结构的权重,生成权重文件<​color red>​ERE_weight_dict.json</​color>​
 +
 +<code python>
 +python ./​gen_weight.py
 +</​code>​
 +
 +==== Step 4: 计算专利相似度 ====
 +运行文件<​color red>​gen_similarity_score.py</​color>​计算专利相似度,结果保存在<​color red>​similarity_weighted.xlsx</​color>​以及<​color red>​similarity_nonweighted.xlsx</​color>​文件中,前者基于Step 3的权重,后者基于相同权重。
 +
 +<code python>
 +python ./​gen_similarity_score.py
 +</​code>​
 +
 +Note: 此处采用的最优运输问题算法是基于 Matlab 和 C 语言写的(ot.c,​ ot.m, ot_mex.c, ot_mex.mexw64),该步骤只是通过 Python 调用 Matlab API,因此确保电脑装有Matlab2018b以上版本,并设置好相应的环境,可参考:https://​zhuanlan.zhihu.com/​p/​47655091
 +
 +该数据集该步骤会花费大约十个小时。
 +
 +~~DISCUSSION:​closed~~
zh/notes/patent_similarity.1610530442.txt.gz · 最后更改: 2021/01/13 17:34 由 pzczxs