gpt4 book ai didi

python-3.x - Python。自然语言处理。预处理文本

转载 作者:行者123 更新时间:2023-11-30 09:31:53 27 4
gpt4 key购买 nike

我有一个关于预处理文本语料库的问题。我想从文本中删除所有非字母数字符号。我有一些方法,但它们并不能完全解决问题。

E.x.我有一句话:

A B C D ,5 .. AAA55AAA aaa.bbb.ccc

结果我想得到:

'A' 'B' 'C' 'D' 'AAA' 'AAA' 'aaa' 'bbb' 'ccc'

我尝试过 NLTK:

from nltk.tokenize import word_tokenize
tokens = word_tokenize(my_sentence)

但它有方法isalpha():

words = [word for word in tokens if word.isalpha()]

结果将是:

'A', 'B', 'C', 'D'

所以这并不能解决我的问题。它删除所有包含非字母字符的单词

还有一个:

import string
table = str.maketrans('', '', string.punctuation)
sripped = [w.translate(table) for w in tokens]

但它只删除标点符号(和所有单词):

'A', 'B', 'C', 'D', '5', '', 'AAA55AAA'

有没有使用NLTK或smth的解决方案。别的?或者解决问题的唯一方法 - 对每个单词使用正则表达式? (真的不想这样做,因为正则表达式可以工作很长时间,尤其是在大文件上)

最佳答案

你能用regex吗? ?

import re
rx = re.compile(r'[^a-zA-Z]')

res = rx.sub(" ", "AAA BB2BB")

print(res) # >> AAA BB BB

What it does: [^a-zA-Z] will match any non-alpha caracters and sub() will replace them by a space

关于python-3.x - Python。自然语言处理。预处理文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54517501/

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