gpt4 book ai didi

python - 基于规则的 ngram 映射

转载 作者:行者123 更新时间:2023-12-01 08:43:29 25 4
gpt4 key购买 nike

在文本中一起出现的 ngram 需要与字典剩余字符串映射到其他字符串(O)

dict_ngram = {'Log':'c1','LOG entrie':'c2','log entrie block':'c3'}
sent = 'the user @ enter log = to validate log entrie in ,a log entrie block'

预期输出:

[the-O,user-O,@ -O,enter-O,log-c1,=-O,to-O,validate-O,log entrie-c2, in-O, a-O, ,-O,log entrie block-c3]

最佳答案

您可以将 dict_ngram 的键按照交替正则表达式模式中字数计数的相反顺序放置,然后使用 re.findall 对输入字符串进行标记 发送,并使用 dict.get 根据 dict_ngram 将标记映射到其值,并使用 O 作为默认值:

import re
dict_ngram = {k.lower(): v for k, v in dict_ngram.items()}
print('[%s]' % ','.join('-'.join((s.strip(), dict_ngram.get(s, 'O'))) for s in re.findall(r'%s|\S+' % '|'.join(map(re.escape, sorted(dict_ngram, key=len, reverse=True))), sent)))

输出:

[the-O,user-O,@-O,enter-O,log-c1,=-O,to-O,validate-O,log entrie-c2,in-O,,a-O,log entrie block-c3]

关于python - 基于规则的 ngram 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53398602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com