![](/img/trans.png)
[英]using nltk to get back the orginal words with whole sentance to tokenize
[英]tokenize words, delete punctuaction using nltk
這是一個示例,說明了如何為西班牙語語言標記一個短語。
texto= "esto es un texto, para el sr. gómez. Esto; es una prueba que puedes encontrar en www.google.com quisiera encontrarla.. claro esta,.Quisiera mejorarlo"
當我使用標記詞組的nltk時,輸出為:
['esto', 'es', 'un', 'texto', ',', 'para', 'el', 'sr.', 'gómez', '.', 'Esto', ';', 'es', 'una', 'prueba', 'que', 'puedes', 'encontrar', 'en', 'www.google.com','quiero','encontarla..','esta,.', 'quisiera','mejoralo']
除了有效分數(如sr.
外,如何消除標點符號sr.
或www.google.com
from nltk.tokenize import word_tokenize
texto= "esto es un texto, para el sr. gómez. Esto; es una prueba que puedes encontrar en www.google.com quisiera encontrarla.."
palabras_tokenizadas=(word_tokenize(texto,"spanish"))
print(palabras_tokenizadas)
這應該是結果:
['esto', 'es', 'un', 'texto', 'para', 'el', 'sr.', 'gómez', 'Esto', 'es', 'una', 'prueba', 'que', 'puedes', 'encontrar', 'en', 'www.google.com', 'quisiera', 'encontrarla', 'claro', 'esta', 'quisiera', 'mejorarlo']
我嘗試了類似的方法,但是並不能解決我的問題( "encontarla.."
, "esta,."
"encontarla.."
類的問題
punctuation = [",", ";", ".",...............] # The tokens that I want to skip
palabras_tokenizadas_1 = [ palabra for palabra in palabras_tokenizadas if palabra not in punctuation ]
我想以最好的方法在任何有分數的句子中全局解決我的問題,而不僅僅是解決問題。 怎么辦
您可以輕松地使用標點符號列表:
punctuation = [",", ";", "."] # The tokens that you want to skip
palabras_tokenizadas2 = [ palabra for palabra in palabras_tokenizadas1 if palabra not in punctuation ]
輸出:
['esto', 'es', 'un', 'texto', 'para', 'el', 'sr.', 'gómez', 'Esto', 'es', 'una', 'prueba', 'que', 'puedes', 'encontrar', 'en', 'www.google.com']
對於所有標點符號,您可以檢查string.punctuation
並按以下方式使用:
import string
punctuation = list(string.punctuation)
輸出:
['!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', '{', '|', '}', '~']
您可以使用:
res = [tkn for tkn in tkn_lst if tkn.lower().islower() or any(chr.isdigit() for chr in tkn)]
結合起來,它們要求每個令牌都包含一些字母數字部分,盡管如果我正在使用它,則可以通過一個輔助函數使其更具可讀性:
def has_alphanum(token):
return token.lower().islower() or any(character.isdigit() for character in token)
res = [token for token in palabras_tokenizadas1 if has_alphanum(token)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.