35 | Comprensión del lenguaje natural |
Anteriormente se vio c
ómo utilizar para ingresar una entrada en lenguaje natural. Ahora se describir
á c
ómo establecer funciones que puedan comprender el lenguaje natural.
Interpreter es la clave para mucho de este tema. Se le dice al int
érprete qu
é tipo de cosa se desea obtener y, entonces, este toma cualquier cadena de caracteres que se le den y trata de interpretarla.
Interprete la cadena
"nyc" como ciudad:
“The big apple” es un apodo de la ciudad de Nueva York:
Interprete la cadena
"hot pink" como color:
Interpreter convierte lenguaje natural en expresiones de Wolfram Language con las que se pueden efectuar procesos de c
ómputo. He aqu
í un ejemplo relacionado con montos de dinero.
Interprete diversos montos de dinero:
Calcule el total en d
ólares, haciendo la conversi
ón con los tipos de cambio del momento:
Aqu
í est
á otro ejemplo, que se refiere a ubicaciones.
Interpreter da la ubicaci
ón geogr
áfica de la Casa Blanca:
Puede funcionar tambi
én a partir de un domicilio:
Interpreter maneja centenares de diferentes tipos de objetos.
Interprete los nombres de universidades (de cu
ál
“U of I
” se trate depende de la localizaci
ón geogr
áfica):
Interprete los nombres de sustancias qu
ímicas:
Interprete nombres de animales y, luego, obtenga sus im
ágenes:
Interpreter interpreta cadenas completas de caracteres.
TextCases, en cambio, intenta elegir, de una cadena, los casos que se piden.
Elija los sustantivos en una porci
ón de texto:
Elija cantidades de dinero:
Se puede usar
TextCases para elegir tipos particulares de cosas en una porci
ón de texto. Por ejemplo, aqu
í se eligen los casos que sean nombres de pa
íses en cierto art
ículo de Wikipedia.
Genere la nube de palabras de los nombres de países que aparecen en el artículo de Wikipedia sobre la Unión Europea:
TextStructure muestra la estructura completa de una porci
ón de texto.
Vea cómo puede analizarse sintácticamente en unidades gramaticales una oración en inglés:
Representaci
ón alternativa en forma de gr
áfico:
WordList[ ] da una lista de palabras comunes del ingl
és.
WordList["Noun"], etc. da las listas de palabras que pueden usarse como partes particulares del lenguaje.
Busque los 20 primeros casos de la lista de verbos comunes del ingl
és:
Es muy fácil estudiar algunas de las propiedades de las palabras. Aquí se presentan los histogramas que comparan las distribuciones de la longitud de sustantivos, verbos y adjetivos en la lista de palabras comunes del inglés.
Haga los histogramas de las longitudes de los sustantivos, verbos y adjetivos en ingl
és:
Hasta el momento se ha considerado solo el ingl
és. Sin embargo, Wolfram Language puede tambi
én manejarse con otros idiomas. Por ejemplo,
WordTranslation traduce palabras.
Traduzca “hello” al francés:
Traduzca al coreano y despu
és translitere al alfabeto ingl
és:
Si se quiere hacer la comparaci
ón entre muchas lenguas diferentes, se da la opci
ón
All para la lengua en
WordTranslation. Como resultado se obtiene una asociaci
ón que da las traducciones a diferentes idiomas, listados m
ás o menos de acuerdo con su grado de uso en el mundo.
De la traducción de “hello” en las 5 lenguas más usadas en el mundo:
Se toman ahora las 100 lenguas de uso más común, y se encuentra el primer caracter de la primera de las traducciones que hay para “hello”. Ahora se muestra la nube de palabras, que muestra que en esas lenguas la “h” es la que aparece como inicial más frecuente en las traducciones de “hello”.
Considerando los 100 primeros lenguajes, cree una nube de palabras con las letras iniciales de la palabra “hello”:
Interpreter["tipo"] | | especifica una función para interpretar lenguaje natural |
TextCases["texto","tipo"] | | encuentra los casos de un tipo dado de objeto en texto |
TextStructure["texto"] | | encuentra la estructura gramatical de texto |
WordTranslation["palabra","lengua"] | | traduce una palabra a otra lengua |
35.1Use
Interpreter para encontrar la ubicaci
ón de la torre Eiffel.
»
35.2Use
Interpreter para encontrar una universidad a la que se suele llamar
“U of T
”.
»
35.3Use
Interpreter para encontrar las sustancias qu
ímicas a las que se refieren como C2H4, C2H6 y C3H8.
»
35.5Encuentre aquellas universidades que puedan ser llamadas como
“U of X
”, donde x es cualquier letra del alfabeto.
»
35.6Busque cu
áles de los nombres de las capitales de los estados de EE. UU. pueden interpretarse como t
ítulos de pel
ículas (usar
CommonName para obtener las versiones de los nombres de entidades como cadenas de caracteres).
»
35.7Busque cu
áles nombres de ciudades son permutaciones de las letras a, i, l y m.
»
35.8Haga la nube de palabras de los nombres de pa
íses que aparecen en el art
ículo de Wikipedia sobre
“gunpowder
”.
»
35.9Busque todos los sustantivos en
“She sells seashells by the sea shore.
” »
35.10Use
TextCases para encontrar el n
úmero de sustantivos, verbos y adjetivos en los primeros 1000 caracteres del art
ículo de Wikipedia sobre
“computers
”.
»
35.11Encuentre la estructura gramatical de la primera oraci
ón del art
ículo de Wikipedia sobre
“computers
”.
»
35.12Encuentre los 10 sustantivos m
ás comunes en
ExampleData[{"Text", "AliceInWonderland"}].
»
35.13Muestre la representaci
ón del grafo de comunidades de la estructura textual de la primera oraci
ón del art
ículo de Wikipedia sobre
“language
”.
»
35.14Haga la lista de los totales de sustantivos, verbos, adjetivos y adverbios que existen en
WordList en ingl
és.
»
35.15Genere la lista de las traducciones de los n
úmeros 2 al 9 al franc
és.
»
Qué tipos posibles de intérpretes hay?
Es una lista larga. Consulte la documentaci
ón o eval
úe
$InterpreterTypes para ver la lista.
¿Se necesita tener una conexi
ón a la red para usar
Interpreter?
En casos sencillos, tales como fechas o divisas básicas, no se requiere. Pero sí es necesaria para trabajar con entradas de lenguaje natural completo.
Al decir “4 dollars”, ¿cómo puede saberse si se trata de dólares estadounidenses o de otro tipo?
Puede intentar deducirse de qu
é tipo de d
ólares se est
á hablando con base en la ubicaci
ón geogr
áfica.
¿Puede el
Interpreter trabajar con lenguaje natural arbitrario?
Si algo puede expresarse en Wolfram Language, entonces
Interpreter deber
ía poder interpretarlo.
Interpreter["SemanticExpression"] toma cualquier entrada e intenta entender su significado, de tal modo que pueda obtener una expresi
ón de Wolfram Language que lo capture. En esencia, lo que hace ser
ía la primera etapa de lo que hace Wolfram|Alpha.
¿Pueden incorporarse int
érpretes hechos por el usuario?
S
í.
GrammarRules permite construir una gram
ática propia, usando cualesquier int
érpretes que se quiera.
¿Puede buscarse el significado de una palabra?
Dada una palabra, ¿puede encontrarse a qué categoría gramatical corresponde?
PartOfSpeech da
todas las categor
ías gramaticales a las que puede corresponder una palabra. As
í, para
“fish
” da sustantivo y nombre. Cu
ál de ellas sea la correcta depende de c
ómo se est
é usando la palabra en una oraci
ón, y de esto se encarga
TextStructure.
Además de palabras, ¿pueden traducirse oraciones completas?
TextTranslation lo hace con algunos lenguajes y, generalmente, recurre a alg
ún servicio externo.
Puede traducir una buena cantidad de palabras de algunos centenares de los lenguajes m
ás comunes. Y traduce al menos unas cuantas palabras de m
ás de un millar de lenguajes.
LanguageData da informaci
ón acerca de m
ás de 10 000 lenguajes.
- TextStructure requiere de un texto gramaticalmente completo, pero Interpreter usa muchas técnicas diferentes para trabajar también con fragmentos de texto.
- Al usar se puede resolver interactivamente la ambigüedad en la entrada. Con Interpreter hay que hacerlo programáticamente, usando la opción AmbiguityFunction.