这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
| 
                    zh:notes:patent_similarity [2021/01/13 17:33] pzczxs [Requirements]  | 
                
                    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: \\ | 
| - | ├─ TFH_Annotated_Dataset | + | ├─ TFH_Annotated_Dataset \\ | 
| - | │ ├─ 4036723.ann | + | │ ├─ 4036723.ann \\ | 
| - | │ ├─ 4036723.txt | + | │ ├─ 4036723.txt \\ | 
| - | │ ├─ 4040113.ann | + | │ ├─ 4040113.ann \\ | 
| - | │ ├─ 4040113.txt | + | │ ├─ 4040113.txt \\ | 
| - | │ ├─ ... | + | │ ├─ ... \\ | 
| - | │ └─ ... | + | │ └─ ... \\ | 
| - | ├─ gen_similarity_matrix.py | + | ├─ gen_similarity_matrix.py \\ | 
| - | ├─ gen_similarity_score.py | + | ├─ gen_similarity_score.py \\ | 
| - | ├─ gen_weight.py | + | ├─ gen_weight.py \\ | 
| - | ├─ save_ERE.py | + | ├─ save_ERE.py \\ | 
| - | ├─ ot.c | + | ├─ ot.c \\ | 
| - | ├─ ot.m | + | ├─ ot.m \\ | 
| - | ├─ ot_mex.c | + | ├─ ot_mex.c \\ | 
| - | ├─ ot_mex.mexw64 | + | ├─ ot_mex.mexw64 \\ | 
| - | ├─ word_sim_dict.pickle | + | ├─ word_sim_dict.pickle \\ | 
| - | └─ readme.md | + | └─ readme.md \\ | 
| ===== 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~~ | ||