要看两篇文章是否存在抄袭,一个简单的思路就是看两篇文章的关键词的重复率是否很高,利用jieba库可以很容易提取文章的关键词,再利用两篇文章关键词的交集除以并集的比重就可以简单的判断两篇文章是否存在抄袭,下面我们用python简单的来实现一下吧。

下面是两篇关于青春的文章分别放在“a.txt”和“b.txt”记事本文件中。

image.png



import jieba.analyse  # 导入jieba分词分析库
a_words = "a.txt"  # 文章1的路径
b_words = "b.txt"  # 文章2的路径
# 提取两篇文章前20关键字
def get_key_words(file_paht1, file_path2):
   with open(file_paht1, mode="r", encoding="utf-8") as f1:
       a = f1.read()
   with open(file_path2, mode="r", encoding="utf-8") as f2:
       b = f2.read()
   a_key_words = jieba.analyse.extract_tags(a, topK=20)
   b_key_words = jieba.analyse.extract_tags(b, topK=20)
   return a_key_words, b_key_words

# 两篇文章的相似度
def similarity():
   a_key_words, b_key_words = get_key_words(a_words, b_words)
   print(a_key_words, b_key_words)  # 打印两篇文章的关键词列表
   
intersection = set(a_key_words) & set(b_key_words)  # 求两个关键词列表的交集
   
union = set(a_key_words) | set(b_key_words)  # 求两个关键词列表的并集
   # 返回 交集除以并集的百分比保留2位小数
   
return round(len(intersection) * 100 / len(union), 2)
# 打印结果
print(similarity())


结果如下:

文章1前20个关键词:

['林道静', '青春', '之花', '春之歌', '异母', '想起', '妖娆', '最美', '毅力', '逃避', '坚强', '一点点', '美好', '知识分子', '为了', '字字句句', '多么', '甘醇', '因为', '寻找']


文章2前20个关键词:

 ['作业', '老太太', '那么', '房间', '职业', '明星', '老师', '涂鸦', 'pass', '白日梦', '没有', '晃悠', '床上', '想着', '什么', '做起', '双腿', '青春', '脑子里', '颤抖']


相似度:

2.56



0 评论 最近

没有评论!