Python为大量字符串列表找到正则表达式模式

时间:2014-01-25 02:41:59

标签: python regex machine-learning

不确定这是用于元数据还是堆栈,但我有一个非常大的字符串列表,并希望找到它们之间的相似性,这样我就可以提取最相似的组并将它们重写为正则表达式以节省空间。

现在我正在查看清单并慢慢手工筛选。

是否有一个函数在python中执行此操作,我将输入一个列表,它将按相似性对字符串进行分组?我有scikits-learn但不想制作我自己的程序,如果已经有一个。

NLTK会有这样的东西吗?

例如,对于争夺列表,我可以得到这样的回报或有组织的数据集

Cat
hat
bat
rat

snail
mail
fail
pail

rhino
dino

Milhouse

我会为他们写正则表达式

patterns = ['^(c|h|b|r)at$', '^(sn|m|f|p)ail$', '^(rh|d)ino$', 'Milhouse']

1 个答案:

答案 0 :(得分:1)

我不知道NLTK是否有这个,但这听起来像是Burkhard-Keller Trees的用途。我不认为他们在标准库中,但至少有一个Python实现可用。

如果你想坚持使用标准库,你可以试试difflib.get_close_matches(),但它可能会更慢。