python从一段文本中找出存在于词库的词语
有现成的库吗?
可能不是最佳答案,只是提供一个思路。
个人觉得这个问题并不需要什么库,先把词库载入,弄成列表什么的。然后再把你需要匹配的文本读入,反过来想,文本存在词库的词,也就是词库的词存在于文本中。
这样想的话,再用in就可以判断这个词在不在文本里面了,判断之后你是提取出来还是替换什么的,就看你怎么做了。
其实也可以用正则表达式暴力提取出来。
希望能帮到你
结巴分词后再匹配
和兔子的思路一样,实际上和分词里面的对stopword处理一样,可参考结巴分词中使用的whoosh库里各类
Tokenizer()
和
StopFilter()
代码地址
Tokenizer()
用于对需匹配文本做处理,里面很多种你选一种就行,如果对分词处理不太确定的话,可使用jieba,然后用”jieba.cut’或’jieba.cut_for_search’对文本进行分词,然后把你的词库写成列表,后面的
StopFilter()
实际上就是个for循环判断if in就行了。
这样行么
import re
text = '''python从一段文本中找出存在于词库的词语
有现成的库吗?'''
ciku = ['文本', '一段', '词语', '没有']
pattern = '|'.join(ciku)
re.findall(pattern, text)
>>>
['一段', '文本', '词语']
AC自动机 字数限制?单词忘了咋拼的了