【问题标题】:how to find maximal matching pattern in data in python如何在python中的数据中找到最大匹配模式
【发布时间】:2019-02-20 10:25:13
【问题描述】:
我在一个名为 file.txt 的文件中有一个格式,其中包含如下行:
婴儿:n:婴儿
苍蝇:n:飞
女士们:n:女士
羊:n:羊
家具:n:家具
行李:n:行李
等等
现在,我只需要提取 f1 和 f3 之间的共同模式,并希望以以下格式编写:
示例:婴儿
在这里,婴儿有共同的模式,直到“bab”和“ies”也被添加到以下单词中。
格式:<e lm="babies"><i>bab</i><par n="bab"/></e>
【问题讨论】:
标签:
python-3.x
nlp
linguistics
【解决方案1】:
你的问题不清楚,如果你能解释清楚就好了。
但是,我认为您想使用正则表达式(正则表达式)。
这是一个使用正则表达式的好网站:https://regex101.com/
在python中你可以使用re模块(import re)。
如果你有像 "babies:n:baby" 这样的字符串,你可以提取与正则表达式的相似性:(\w+).*:n:(\1).*
意思是说:
(\w+) - 查找字母字符序列
:n: - 然后找到 :n:
(\1) - 然后是我们在第一个 () 中捕获的同一个词
python 示例:
一次搜索:
import re
pattern = r"(\w+).*:n:(\1).*"
result = re.search(pattern, word)
return result.group()
对于许多搜索:
import re
pattern = r"(\w+).*:n:(\1).*"
result = re.findall(pattern, word)
return result
【讨论】:
-
我让问题更清楚了。例如,我有一个这样的范例:baby:n:baby;女士们:n:宝贝;薯条:n:宝贝。我希望 ro 采用以下格式:bab; ladfr 同样,我有多种范式。我想要一个通用规则来找到单词的最大匹配。