我有3个单词清单。一个列表仅包含南非荷兰语语言的单词。一个列表仅包含英语单词。第三个列表包含两种语言的单词。我试图自动确定第三个列表中的哪个单词属于前两个列表中的哪个。我想到的一种方法是查看结尾处出现的最长的公共子字符串。
因此,例如,英语单词将以..tic结尾,而南非荷兰语单词将以..tie结尾(例如字母对字母等)。
如何自动查找第一个列表中常见但第二个列表中不常见的后缀?我想为此使用Python。我使用Python列表作为列表。
假设后缀大小固定suffix_size
且“ commonly”的阈值thresh
:
from collections import Counter, defaultdict
def suffix_counts(wordlist):
output = defaultdict(int)
counts = Counter(
word[-suffix_size:]
for word in wordlist
if len(word) >= suffix_size
)
output.update(counts)
return output
afrikaans_suffixes = suffix_counts(afrikaans_list)
english_suffixes = suffix_counts(english_list)
common_english_suffixes = [
suffix
for suffix, count in english_suffixes.iteritems()
if (float(count) / (count + afrikaans_suffixes[suffix])) > thresh
] # All suffixes which are found in English thresh percent of the time
话虽如此,这可能不是解决此问题的最佳方法-您可能会发现值得考虑使用nltk之类的每种语言构造n-gram模型,然后使用这些模型对未知单词进行分类。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句