gpt4 book ai didi

python - 处理 DataFrame Pandas 中的缩写和拼写错误的单词

转载 作者:行者123 更新时间:2023-11-28 16:56:59 25 4
gpt4 key购买 nike

我有一个数据框包含拼写错误的单词和这样的缩写。

input:
df = pd.DataFrame(['swtch', 'cola', 'FBI',
'smsng', 'BCA', 'MIB'], columns=['misspelled'])

output:
misspelled
0 swtch
1 cola
2 FBI
3 smsng
4 BCA
5 MIB

我需要更正拼写错误的单词和缩写

我试过创建字典,例如:

input: 
dicts = pd.DataFrame(['coca cola', 'Federal Bureau of Investigation',
'samsung', 'Bank Central Asia', 'switch', 'Men In Black'], columns=['words'])

output:
words
0 coca cola
1 Federal Bureau of Investigation
2 samsung
3 Bank Central Asia
4 switch
5 Men In Black

并应用此代码

x = [next(iter(x), np.nan) for x in map(lambda x: difflib.get_close_matches(x, dicts.words), df.misspelled)]
df['fix'] = x

print (df)

输出是我已成功更正拼写错误但不是缩写

misspelled        fix
0 swtch switch
1 cola coca cola
2 FBI NaN
3 smsng samsung
4 BCA NaN
5 MIB NaN

请帮忙。

最佳答案

如何采用双管齐下的方法,首先纠正拼写错误,然后扩展缩写:

df = pd.DataFrame(['swtch', 'cola', 'FBI', 'smsng', 'BCA', 'MIB'], columns=['misspelled'])
abbreviations = {
'FBI': 'Federal Bureau of Investigation',
'BCA': 'Bank Central Asia',
'MIB': 'Men In Black',
'cola': 'Coca Cola'
}

spell = SpellChecker()
df['fixed'] = df['misspelled'].apply(spell.correction).replace(abbreviations)

结果:

  misspelled                            fixed
0 swtch switch
1 cola Coca Cola
2 FBI Federal Bureau of Investigation
3 smsng among
4 BCA Bank Central Asia
5 MIB Men In Black

我使用 pyspellchecker但您可以使用任何拼写检查库。它将 smsng 更正为 among 但这是自动拼写更正的警告。不同的库可能给出不同的结果

关于python - 处理 DataFrame Pandas 中的缩写和拼写错误的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57443165/

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