首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在DataFrame Pandas中处理缩写和拼写错误的单词

在DataFrame Pandas中处理缩写和拼写错误的单词
EN

Stack Overflow用户
提问于 2019-08-10 22:50:25
回答 1查看 1K关注 0票数 3

我有一个包含拼写错误的单词和缩写的数据帧,如下所示。

代码语言:javascript
运行
复制
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

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

我已经尝试创建字典,例如:

代码语言:javascript
运行
复制
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 

并应用此代码

代码语言:javascript
运行
复制
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)

输出结果是I已成功更正拼写错误,但不是缩写

代码语言:javascript
运行
复制
misspelled        fix
0      swtch     switch
1       cola  coca cola
2        FBI        NaN
3      smsng    samsung
4        BCA        NaN
5        MIB        NaN

请帮帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-10 23:14:26

如何遵循双管齐下的方法,首先更正拼写错误,然后扩展缩写:

代码语言:javascript
运行
复制
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)

结果:

代码语言:javascript
运行
复制
  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,但这是自动拼写更正的一个警告。不同的库可能会产生不同的结果

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57443165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档