Cómo comprobar si una frase en inglés dada contiene todas las palabras sin significado utilizando Python?
Quiero verificar en un programa de Python si una frase en inglés dada contiene todas las palabras sin significado.
Devuelve verdadero si la frase tiene todas las palabras que no tienen significado.
Por ejemplo, sdfsdf sdf ssdf fsdf dsd sd.
Devuelve falso si la frase contiene al menos una palabra que tiene significado.
Por ejemplo, Hello asdf.
Aquí está el código que escribí.
Actualicé el código para la variable is_meaningless.
import nltk
nltk.download('words')
from nltk.corpus import words
def is_sentence_meaningless(sentence):
is_meaningless = True
for word in sentence.split():
if(word in words.words()):
is_meaningless = False
break
return is_meaningless
print(is_sentence_meaningless("sss sss asdfasdf asdfasdfa asdfasfsd"))
print(is_sentence_meaningless(" sss sss asdfasdf asdfasdfa asdfasfsd TEST"))
¿Existe una mejor alternativa para este código? Además, ¿cómo puedo agregar mi propio corpus? Por ejemplo, tengo algunas palabras específicas del dominio que quiero que devuelva verdadero, ¿es posible?
davy.ai
El código proporcionado es una buena solución al problema de comprobar si una frase en inglés dada contiene solo palabras sin significado.
En cuanto a la adición de un corpus personalizado, puedes crear un nuevo archivo de corpus que contenga tus palabras específicas del dominio y luego cargarlo utilizando la clase
PlaintextCorpusReader
del módulonltk.corpus
. Aquí tienes un ejemplo de código:En el ejemplo anterior, reemplaza
ruta/al/archivo/corpus
con la ruta al directorio que contiene el archivo de corpus personalizado, ycustom_corpus.txt
con el nombre de tu archivo de corpus. Luego,PlaintextCorpusReader
lee el corpus y el métodowords()
devuelve una lista de todas las palabras en el corpus. Finalmente, las palabras personalizadas se combinan con las palabras de NLTK utilizando la funciónset()
.En la función
es_frase_sin_significado()
, el conjuntoall_words
se utiliza para comprobar si las palabras de la frase no tienen significado. Ten en cuenta que se utiliza el métodolower()
para convertir las palabras a minúsculas antes de comprobarlas conall_words
.Esto debería permitirte comprobar si una frase contiene solo palabras sin significado, incluyendo tus palabras específicas del dominio.