最佳方法是(1)如何检测这些短语,然后(2)以不过于严格的方式在其他文本中搜索它们(以便找到“甚至是滑雪或徒步旅行的钓鱼”)?
技术细节: 对于词汇表,您有几种可能获得良好的词汇表。不幸的是,我记不得它们的名称了。其中之一是删除经常出现且无处不在的单词。相反,您应该保留在少数文本中出现的罕见单词。但是,保留仅在一个文本中出现的单词没有用。
对于邻接矩阵,邻接是通过计算您正在考虑的单词之间的距离(计算它们之间的单词数)来测量的。例如,让我们使用您的文本=)
比较风格的一种方法是寻找相似的短语。如果我在一本书中多次发现“钓鱼,滑雪和徒步旅行”,并在另一本书中发现“钓鱼,徒步旅行和滑雪”,则样式的相似性指向一个作者。但我也需要能够找到“甚至垂钓,徒步旅行和滑雪”。理想情况下,我还会发现“angling,hiking和skiing”,但由于它们是非英语文本(Koine Greek),所以更难允许同义词,这方面不是必要的。
这些值完全是虚构的:
A(method,comparing)+ = 1.0
A(method,similarity)+ = 0.5
A(method,Greek)+ = 0.0
您主要需要一个“典型距离”。例如,您可以说在20个分隔单词之后,单词不能再被视为相邻的了。
稍微进行归一化后,只需对两个文本的邻接矩阵进行L2距离计算即可看出它们的相似程度。之后您可以进行更复杂的操作,但这应该产生可接受的结果。现在,如果您有同义词,可以以不错的方式更新邻接矩阵。例如,如果您输入“美丽的少女”,则
A(beautiful,maiden)+ = 1.0
A(magnificent,maiden)+ = 0.9
A(fair,maiden)+ = 0.8
A(sublime,maiden)+ = 0.8
...
我会遵循两个准则:
angling
是与fishing
非常相似的匹配。作为一个自学习的AI,我将使用(至少在开始时)神经网络。有一个简单且完全可用的示例(用Python编写),可以在这里找到,精准地针对“数据挖掘”。当然,您也可以在其他语言中实现。
关于您的两个具体问题: