如何解决是否有任何解决方案可以将原始数据转换为一些分类数据集
我有一个数据集,其中包含 hindi、hindi、hendi、English、Englsh、inglish、inglsh...等值。我希望这个数据集分成不同的数据集,这些数据集将具有类似的值。例如在这种情况下有两个数据集;第一个是具有印地语、印地语、hendi 的值,另一个包含英语、英语、英语、inglsh。
解决方法
您可以使用difflib.get_close_matches
输入:
>>> s = pd.Series(['Hindi','hindi','hendi','English','Englsh','inglish','inglsh'])
>>> s
0 Hindi
1 hindi
2 hendi
3 English
4 Englsh
5 inglish
6 inglsh
处理:
import difflib
s.apply(lambda s: difflib.get_close_matches(s,possibilities=['english','hindi'])[0])
输出:
0 hindi
1 hindi
2 hindi
3 english
4 english
5 english
6 english
,
假设唯一值很小且已知,您可以尝试对具有所有唯一值的单词进行评分,并将该单词分配给唯一值得分最高的数据集。
您可以在此处尝试多种评分机制,例如 Levenshtein 距离。
例如:
dataset = ['hindi','hundi','english','englesh']
unique_values = ['hindi','english']
segregated_dataset = {'hindi': [],'english': []}
for val in dataset:
max_score = 0
for unique_val in unique_values:
score = scoring_function(val,unique_val) # implement the scoring function of your choice
if score > max_score:
field = unique_val
max_score = score
segregated_dataset[field].append(val)
,
由于不知道正确的必填单词集,因此您的问题的一个可能答案可能是 this question。
最好使用 numpy.char.lower(list_of_word)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。