请问大家,什么方法或者技术可以从几列文本列中找出相应的共同规律呢?
什么方法都不可能找出规律,或者可以说你可以找出无穷无尽的规律来
所谓规律是人定义的,人归纳的
自然界里本来就不存在规律这种东西,是人硬要把不相干的东西抽象了来理解,达到压缩信息,减轻认知负担的目的,发明出来的
你让计算机自动去找规律,它能把任何两个东西当成是规律
而人希望找到的是自己能够理解的规律,那些理解不了的规律不希望有。这根本就是办不到的。
有个给天鹅分组的悖论我忘记名字是什么了,就是说你可以以任意规律给天鹅分组,总有办法给天鹅分组成2组,最终丑小鸭和任何一只白天鹅的相似性比两只天鹅互相的相似性还要高。
还有个悖论讲的是火鸡里的一个智者研究出一个伟大的规律,就是每天人类都会给他们喂食,直到感恩节这一天规律失效了。
用归纳法找规律本身从理论上来讲就是个不靠谱的行为,别说用代码自动找规律了。
可以用 difflib 模块比较两段文本,看有什么内容变动、删除、增加:
>>> import difflib
>>> a = '''
Python 斐波那契数列递归的改进,算第1000万项只要4秒钟!
https://blog.csdn.net/boysoft2002/article/details/120257133
Python 不自己试试,还真猜不出递归函数的时间复杂度!
https://blog.csdn.net/boysoft2002/article/details/120242318
Python 算法的时间复杂度和空间复杂度 (实例解析)
https://blog.csdn.net/boysoft2002/article/details/120213715
Python 控制台操作的文字版“数独”游戏(非GUI版本)
https://blog.csdn.net/boysoft2002/article/details/120202704
'''
>>> b = '''
斐波那契数列递归的改进,算第9999万项只要4秒钟!
https://blog.csdn.net/boysoft2002/article/details/120257133
Python 不试试,还真猜不出递归函数的时间复杂度!
https://blog.csdn.net/boysoft2002
Python 算法的时间复杂度和空间复杂度
https://blog.csdn.net/boysoft2002/article/details/120202704
Python “数独”游戏(非GUI版本)
https://blog.csdn.net/boysoft2002/article/details/120202704
'''
>>> a = a.splitlines(keepends=True)
>>> b = b.splitlines(keepends=True)
>>> c = difflib.Differ()
>>> print(''.join(list(c.compare(a,b))))
- Python 斐波那契数列递归的改进,算第1000万项只要4秒钟!
? ------- ^^^^
+ 斐波那契数列递归的改进,算第9999万项只要4秒钟!
? ^^^^
https://blog.csdn.net/boysoft2002/article/details/120257133
- Python 不自己试试,还真猜不出递归函数的时间复杂度!
? --
+ Python 不试试,还真猜不出递归函数的时间复杂度!
- https://blog.csdn.net/boysoft2002/article/details/120242318
+ https://blog.csdn.net/boysoft2002
- Python 算法的时间复杂度和空间复杂度 (实例解析)
? -------
+ Python 算法的时间复杂度和空间复杂度
- https://blog.csdn.net/boysoft2002/article/details/120213715
- Python 控制台操作的文字版“数独”游戏(非GUI版本)
https://blog.csdn.net/boysoft2002/article/details/120202704
+ Python “数独”游戏(非GUI版本)
+ https://blog.csdn.net/boysoft2002/article/details/120202704
>>> d = difflib.HtmlDiff()
>>> html = d.make_file(a,b)
>>> with open('difReport.html','w',encoding='utf-8') as f: f.write(html)
5320
>>> import os; os.startfile('difReport.html')
>>>
两种报告方式: 文本和超文本
实在感谢