这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
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~~ |