文本重复率python
2023-05-07 23:36:00
2053 views
问:如何用python统计文本中重复行的数目?
- 答:这个应该不难
先取出一行,存入字典key value=0
然后next 后面一行判断是不是在字典的key里,如果在key里,value+1
完了就结束了,这了字典就是结果
一开始想用用二维数组,好像不好理解,字典好处理一点
问:python比较txt文档中每行文本之间重复词的个数
- 答:读文件可以使用open函数 readlines函数卖取所有行
使用split把行的内容分成词
使用set(a.split(' '))转换成元组
然后两个元组 用 & 可以求得交集
再使用len()就可以求得重复的个数
line1 = '颜色 衣服 简单 适合 大方 质量 款式 舒服 挺 穿 穿着'
line2 = '挺 服务 衣服 态度 快 蛮 合身 质量 物流 服务态度 好 老板'
jiaoji = set(line1.split(' ')) & set(line2.split(' '))
print(jiaoji)
print('重复词数:',len(jiaoji))
输出为
{'衣服', '挺', '质量'}
重复词数: 3
问:C语言什么软件能够查出两个.c程序是否是抄袭?查重软件运行的原理是什么?
- 答:如果是两个源代码文件进行比较,实质上是文本比较,两个文本的相似度分析目前没有看到相关的算法,只有特征匹配来比较相似度。查重软件是比较两边目录的文件指纹数字来判断文件是否是重复的,比如比较文件的md5值。
- 答:可以使用antiplag ,来对c/c++,java,python等代码查重。查重的原理基本是文本相似度比较,不过对程序代码,一般会进行语法解析后,再比较。
问:急求:如何用python删除文本中的重复行?
- 答:发这种问题竟然是截图...没调试过,将就着看吧,主要意思就是通过set方法去除重复项
f = open(file, 'r')
ListOfLine = f.read().splitline()
ListOfLine = list(set(ListOfLine))
f.close()
f = open(file, 'w')
f.writelines(ListOfLine)
f.close() - 答:你好:
一般是:
一边读文本文件,一边将行存入数组;
然后对读取的下一行数据,与数组中的数据做对比,
如果重复,就舍弃;;
最后就爱那个数组中的数据写入文件;
问:python去除文本中重复的字符串
- 答:output=[]
with open('a.txt') as fp:
lines=fp.readlines()
for i in lines:
if i not in output:
output.append(i)
with open('b.txt','w',encoding='utf-8') as fp1:
for i in output:
fp1.write(i)
虽然已经几年过去了,还是写一下吧。以防刚好有人搜到。
Thx. - 答:你的数据都是一行一行的吗?
是的话这样试试
input = open("a.txt", "r").read()
output = open("b.txt", "w+")
patterns = []
for line in input.split("\n"):
if line not in patterns:
print line
patterns.append(line + "\n")
for pattern in patterns:
output.write(pattern)
output.close()
测试了下满足你的输入输出
问:用python找出一个txt文件中的重复数据,并将重复数据输出成另一个txt文件
- 答:假设你的文件名是a.txt,写到b.txt
d = {}
for line in open('a.txt'):
d[line] = d.get(line, 0) + 1
fd = open('b.txt', 'w')
for k, v in d.items():
if v > 1:
fd.write(k)
fd.close() - 答:python 3.6,假设:源文件是 A.txt,处理后输出到B.txt
listA = open('A.txt', 'r').readlines() # 读文件
setB=set()
for x in listA:
if listA.count(x) > 1:
setB.add(x)
fB = open('B.txt', "w")
fB.writelines(setB) # 写文件
fB.close()
问:python多个文本组合后去除重复项
- 答:最简单的是,定义一个list(list可以装的元素数量应该是可以满足需求的,如果数据确实太高,考虑文件数量分组进行)
然后将所有文件的内容逐行读到这个list中,用list自带的去重方法listname=list(set(listname)),进行去重。
最后将整个List写入到d.txt中就可以了
问:如何在python中统计数字在文本中出现的次数
- 答:import re
text="""123 we are -3.13,
and 342 or 58.48
"""
reg=pile(r"(-)?\d+(\.\d+)?")
repl,quanity=reg.subn("\t",text)
print("共有数字:%d个"%quanity)
执行结果:
>>>
共有数字:4个 - 答:一楼稍改:
import re
text="""123 we are -3.13,
and 342 or 58.48
"""
reg=pile(r"((-)?\d+(\.\d+)?)")
finded = map(lambda n:n[0], reg.findall(text))
print finded, len(finded)
执行结果:
>>>
['123', '-3.13', '342', '58.48'] 4
问:python 计算文本之间的相似性
- 答:把文件读出来,不就是文本了吗,就可以用上你说的比较两个文本的代码了
问:求可以测试python的圈复杂度和重复率的软件。。。
- 答:pygenie
PyMetrics
中文搜"用 Python 编写干净、可测试、高质量的代码"
标签: