An Elementary Introduction to the Wolfram Language
35Comprensión del 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.
In[1]:=
Click for copyable input
Out[1]=
The big apple es un apodo de la ciudad de Nueva York:
In[2]:=
Click for copyable input
Out[2]=
In[3]:=
Click for copyable input
Out[3]=
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:
In[4]:=
Click for copyable input
Out[4]=
In[5]:=
Click for copyable input
Out[5]=
Interpreter da la ubicación geográfica de la Casa Blanca:
In[6]:=
Click for copyable input
Out[6]=
In[7]:=
Click for copyable input
Out[7]=
Interpreter maneja centenares de diferentes tipos de objetos.
In[8]:=
Click for copyable input
Out[8]=
In[9]:=
Click for copyable input
Out[9]=
In[10]:=
Click for copyable input
Out[10]=
Click for copyable input
Interpreter interpreta cadenas completas de caracteres. TextCases, en cambio, intenta elegir, de una cadena, los casos que se piden.
In[11]:=
Click for copyable input
Out[11]=
Elija cantidades de dinero:
In[12]:=
Click for copyable input
Out[12]=
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:
In[13]:=
Click for copyable input
Out[13]=
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:
In[14]:=
Click for copyable input
Out[14]=
In[15]:=
Click for copyable input
Out[15]=
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.
In[16]:=
Click for copyable input
Out[16]=
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.
In[17]:=
Click for copyable input
Out[17]=
Traduzca hello al francés:
In[18]:=
Click for copyable input
Out[18]=
In[19]:=
Click for copyable input
Out[19]=
In[20]:=
Click for copyable input
Out[20]=
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:
In[21]:=
Click for copyable input
Out[21]=
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:
In[22]:=
Click for copyable input
Out[22]=
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. »
Salida esperada:
Out[]=
35.2Use Interpreter para encontrar una universidad a la que se suele llamar U of T»
Salida esperada:
Out[]=
35.3Use Interpreter para encontrar las sustancias químicas a las que se refieren como C2H4, C2H6 y C3H8. »
Salida esperada:
Out[]=
35.4Use Interpreter para interpretar la fecha 20140108»
Salida esperada:
Out[]=
35.5Encuentre aquellas universidades que puedan ser llamadas como U of X, donde x es cualquier letra del alfabeto. »
Salida esperada:
Out[]=
Salida esperada:
Out[]=
35.7Busque cuáles nombres de ciudades son permutaciones de las letras a, i, l y m. »
Salida esperada:
Out[]=
Muestra de salida esperada:
Out[]=
35.9Busque todos los sustantivos en She sells seashells by the sea shore. »
Salida esperada:
Out[]=
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»
Muestra de salida esperada:
Out[]=
35.11Encuentre la estructura gramatical de la primera oración del artículo de Wikipedia sobre computers»
Muestra de salida esperada:
Out[]=
35.12Encuentre los 10 sustantivos más comunes en ExampleData[{"Text", "AliceInWonderland"}]»
Salida esperada:
Out[]=
Muestra de salida esperada:
Out[]=
Salida esperada:
Out[]=
35.15Genere la lista de las traducciones de los números 2 al 9 al francés. »
Salida esperada:
Out[]=
Qué tipos posibles de intérpretes hay?
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 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.
Sí. GrammarRules permite construir una gramática propia, usando cualesquier intérpretes que se quiera.
WordDefinition da las definiciones de diccionario.
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.
¿Qué lenguajes maneja WordTranslation?
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.
 
Download Notebook Version
en