我有这个符合预期的python函数。是否可以将逻辑另存为NLP词干分析器? 如果是,则需要做哪些更改?
$('.start_time').each(function(v, l) {
$(this).find('.set_start_time').val($(this).val());
});
我希望用户导入类似这样的内容...
import itertools, re
def dropdup(mytuple):
newtup=list()
for i in mytuple:
i = i[:-3] if i.endswith('bai') else i
for r in (("tha", "ta"), ("i", "e")):
i = i.replace(*r)
i = re.sub(r'(\w)\1+',r'\1', i)
newtup.append(''.join(i for i, _ in itertools.groupby(i)))
return tuple(newtup)
dropdup(('savithabai', 'samiiir', 'aaaabaa'))
('saveta', 'samer', 'aba')
还有更多规则要添加到逻辑中。我只想知道这是否是有效的(pythonic)想法。
答案 0 :(得分:1)
显然,您要做的就是从StemmerI类继承。
答案 1 :(得分:1)
首先见https://www.python-course.eu/python3_inheritance.php
创建文件mytools.py
import itertools, re
from nltk.stem import StemmerI
class MyStemmer(StemmerI):
def stem(self, token):
itoken = token[:-3] if token.endswith('bai') else token
for r in (("tha", "ta"), ("i", "e")):
token = token.replace(*r)
token = re.sub(r'(\w)\1+',r'\1', token)
return ''.join(i for i, _ in itertools.groupby(token))
用法:
>>> from mystemmer import MyStemmer
>>> s = MyStemmer()
>>> s.stem('savithabai')
'savetabae'