我正在处理中文NLP问题。 我发现这个词有特定的后缀。 例如,我有两个列表!你知道吗
suffixs = ['aaa','bbb','cc'.....]
words_list = ['oneaaa','twobbb','three','four']
for w in words_list:
if w has suffix in suffixs:
func(s,w)
我知道我可以使用re-package,但是re只能处理少于100个后缀,但是我有1000多个后缀。 我试着用
for w in words_list:
for s in suffixs:
#suffixs sorted by lenth
if s is_suffix_of(w):
func(s,w)
break
但是太慢了。
func(s,w)可以将单词w拆分为无后缀单词和后缀。
例如'oneaaa'到['one','aaa'],但是func基于一些条件和更多很复杂。所以呢任何在这里都不起作用。
所以我想知道是否有更好的方法来处理它。你知道吗
如果您只是想看看哪些单词有“back fixes”(正确的术语是后缀,顺便说一句),您可以将^{} 与
any
结合使用或者将所有后缀传递给
endswith
,但它们必须位于tuple
,而不是list
:如果您还需要知道哪个后缀匹配,您可以获得
next
,或者None
如果不匹配:或使用
filter
:b = next(filter(w.endswith, back_fixs), None)
缩短或者没有默认值,使用
try/except
:相关问题 更多 >
编程相关推荐