jcu*_*nod 6 language-agnostic algorithm nlp semantics
我有几个非英文文本.我想对它们进行风格比较.
比较风格的一种方法是寻找类似的短语.如果我在一本书"钓鱼,滑雪和徒步旅行"中找到了几次,而在另一本书"钓鱼,徒步旅行和滑雪"中,风格的相似性指向一位作者.我还需要能够找到"钓鱼,甚至滑雪或徒步旅行".理想情况下,我也会发现"钓鱼,徒步旅行和滑雪",但因为它们是非英语文本(Koine Greek),同义词更难以允许,而这方面并不重要.
什么是最好的方法(1)去检测这些类型的短语,然后(2)以一种在其他文本中不过分严格的方式搜索它们(以便找到"钓鱼甚至滑雪或徒步旅行")?
技术细节:对于词汇表,您有多种可能获得良好的词汇量.不幸的是,我记不起名字了.其中之一是删除经常出现的文字.相反,你应该保留少数文本中出现的罕见词.但是,保留在一个文本中完全存在的单词是没有用的.
对于邻接矩阵,通过计算您正在考虑的单词的距离(couting分隔它们的单词的数量)来测量邻接度.例如,让我们使用你的文字=)
比较风格的一种方法是寻找类似的短语.如果我在一本书"钓鱼,滑雪和徒步旅行"中找到了几次,而在另一本书"钓鱼,徒步旅行和滑雪"中,风格的相似性指向一位作者.我还需要能够找到"钓鱼,甚至滑雪或徒步旅行".理想情况下,我也会发现"钓鱼,徒步旅行和滑雪",但因为它们是非英语文本(Koine Greek),同义词更难以允许,而这方面并不重要.
这些是完全组成的值:
A(方法,比较)+ = 1.0
A(方法,相似性)+ = 0.5
A(方法,希腊语)+ = 0.0
你主要需要一个"典型距离".例如,你可以说在20个分词之后,这些词不再被认为是相邻的.
经过一些归一化后,只需在两个文本的邻接矩阵之间建立一个L2距离,看它们有多接近.之后你可以做更好的东西,但这应该产生可接受的结果.现在,如果你有同义词,你可以很好地更新邻接.例如,如果您输入"美丽少女",则
A(美丽,少女)+ = 1.0
A(华丽,少女)+ = 0.9
A(公平,少女)+ = 0.8
A(崇高,少女)+ = 0.8
...