python关键词匹配_Python匹配关键词黑名单词根?

文件A有2500万个正常关键词,一行一个(正常关键词,每个关键词字符较长)

文件B有5万个关键词,一行一个(黑名单词根,每个关键词字符较短),都是utf8编码

用Python来实现匹配的话,匹配规则:

条件1:不含B中的任何一个词根:

条件2:不含0-9数字

条件3:不含a-zA-Z字母

条件4:不含r'>|

文件A中符合以上四个条件的将该关键词保存在文件D。

已经解决:如果A中的某个关键词含有B中的任何一个词根,则将该关键词保存在文件C

用ac自动机

import ahocorasick

import time

def main():

t1 = time.time()

A = ahocorasick.Automaton()

#向trie树中添加单词

with open("blackword.txt",'r') as fp:

for line in fp:

bkw = line.strip()

A.add_word(bkw,(1,bkw))

#将trie树转化为Aho-Corasick自动机

A.make_automaton()

g1 = open("result_dangdang.txt", 'a+')

for line in open("dangdang.txt"):

for k,(i,t) in A.iter(line.strip()):

print line.strip()+t

g1.write(line.strip()+":"+t+"\n")

g1.close()

t2 = time.time()

print "cost time is ", t2 - t1

main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值