基于相似文本组合在一起

时间:2017-03-30 09:48:47

标签: python text dataframe text-mining

我有一个与此类似的数据框

Date    Amount  Narrative 
2017/01/12  50  Active356483
2017/01/12  30  Active798203
2017/01/15  70  1NB6893784
2017/01/23  80  Apple22222
2017/02/01  90  1NB6893784
2017/02/01  10  Apple3435
2017/02/02  10  Apple34532
2017/02/03  10  1NB7847573
2017/02/03  20  Apple78783783
2017/02/04  60  1NB6897383
2017/02/04  90  Apple893043
2017/02/04  100 Apple789302

我需要对具有类似叙述的行进行分组。叙述专栏将告诉您有关原始公司的更多信息,但他们也会添加参考编号。这个参考对外部消费者没有任何意义。在上面的示例中,“叙述”列上的完全匹配不会产生所需的结果。我需要将所有Active,1NB和Apple的行组合在一起。我不能简单地删除数字,因为有时它确实表示帐号。例如,一个人将拥有Apple1-78872和Apple2-674674。这些应被视为两个不同的帐户。

Narrative   Date    Amount
Active798203    2017/01/12  50
        2017/02/12  30
1NB6897383  2017/01/15  70
        2017/02/01  90
        2017/03/01  10
        2017/04/01  60
Apple789302 2017/01/23  80
        2017/03/01  10
        2017/04/01  10
        2017/05/01  20
        2017/06/01  90
        2017/07/04  100

我在考虑进行文字百分比匹配。

from difflib import SequenceMatcher

def similar(a, b):
    return SequenceMatcher(None, a, b).ratio()

0 个答案:

没有答案