【问题标题】:Autocorrect a column in a pandas dataframe using pyenchant使用 pyenchant 自动更正 pandas 数据框中的列
【发布时间】:2018-03-20 19:15:49
【问题描述】:

我尝试将this question 接受的答案中的代码应用到我的数据框列之一,其中每一行都是一个句子,但它不起作用。

我的代码如下所示:

from enchant.checker import SpellChecker
checker = SpellChecker("id_ID")

h = df['Jawaban'].astype(str).str.lower()
hayo = []


for text in h:
    checker.set_text(text)

    for s in checker:
        sug = s.suggest()[0]
        s.replace(sug)

    hayo.append(checker.get_text())

我收到以下错误:

IndexError: list index out of range

非常感谢任何帮助。

【问题讨论】:

  • checker 是 pyenchant 的别名?
  • 是的!刚刚编辑了我的代码以包含导入语句

标签: pandas pyenchant


【解决方案1】:

我没有使用您的代码得到错误。我唯一不同的是导入拼写检查器。

from enchant.checker import SpellChecker
checker = SpellChecker('en_US','en_UK') # not using id_ID

# sample data
ds = pd.DataFrame({ 'text': ['here is a spllng mstke','the wrld is grwng']})
p = ds['text'].str.lower()

hayo = []

for text in p:
    checker.set_text(text)

    for s in checker:
        sug = s.suggest()[0]
        s.replace(sug)

    print(checker.get_text())
    hayo.append(checker.get_text())

print(hayo)

here is a spelling mistake
the world is growing

【讨论】:

  • 现在这太奇怪了......我的错误出现在 s.suggest()[0] 部分。另一个奇怪的事情是,如果我不尝试附加并简单地打印整个内容,我将不会收到错误
  • 我刚试了一下,效果很好。我不知道出了什么问题,但如果我不打印结果,它会给我一个错误,所以我想这样做的方法总是在最后打印。顺便说一句,谢谢!
猜你喜欢
  • 2022-08-14
  • 2018-08-28
  • 2020-06-13
  • 1970-01-01
  • 2017-05-02
  • 2018-09-18
  • 2023-02-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多