Formato de archivo léxico
Acerca del formato de archivo Lexicon
Al preparar un archivo de léxico, es esencial que la sintaxis de cada línea sea correcta para que el motor de PNL procese correctamente las nuevas entradas del diccionario. Esta sección describe el propósito y la sintaxis específica de cada parte del archivo léxico.
- Todos los archivos de léxico deben guardarse en un TCD formato de archivo. Esto representa un archivo de diccionario.
- La primera línea de un archivo DCT debe indicar el tipo de léxico. Ver Tipos de léxico Para más información.
- Todas las columnas de un archivo DCT deben estar delimitadas por tabulaciones.
Consejo Q: Delimitado por tabulaciones significa que las columnas deben estar separadas por Pestaña clave, no la Espacio bar. Una forma sencilla de conservar el formato delimitado por tabulaciones es preparar el archivo de léxico en un editor de texto (como Notepad++ en Windows o TextEdit en Mac) y guardar el archivo como un tipo de archivo DCT. También puedes lograr esto dentro de un editor de texto presionando el botón Pestaña clave entre cada columna.
Columna 1: Variación del patrón
La primera columna del archivo léxico contiene variaciones o sinónimos que desea asignar a formas normales (o chiclets, consulte Columna 3: Forma normal).
Cada línea de su archivo de léxico debe contener exactamente Una variación. Las variaciones adicionales se deben colocar en líneas adicionales. Si una palabra no tiene variaciones, entonces no es necesario definirla en tu léxico, aunque hacerlo no sería perjudicial.
Una variación puede incluir un error ortográfico común, una abreviatura, un acrónimo o un posible nombre alternativo. Los valores de esta columna siempre deben estar en minúsculas, excepto en las entradas que distinguen entre mayúsculas y minúsculas y en el título (consulte Columna 2: Código de sinónimos).
Para cualquier entidad con más de dos palabras, deberá definirla en el diccionario en su forma estándar. Este paso no es necesario para entradas de léxico de una sola palabra, ya que el motor de PNL ya tokeniza todas las palabras individuales que se procesan. Sin embargo, si una entrada de una sola palabra adquiere un nuevo significado cuando se escribe con mayúscula, inicialícela en su propia fila. Vea los ejemplos a continuación.
Ejemplo:
Harley Davidson | CSYN | Harley Davidson | {SpeechPart=”Sustantivo”} |
Harley | CSYN | Harley Davidson | {SpeechPart=”Sustantivo”} |
Ejemplo: Si una entrada de una sola palabra distingue entre mayúsculas y minúsculas, incluya una entrada inicial que asigne la variación a la forma normal, como este ejemplo que hace referencia al Aeropuerto Internacional de Los Ángeles (LAX). Se escribe con mayúscula aquí para diferenciarlo del adjetivo “laxo”.
FLOJO | SINÓNIMO | Aeropuerto Internacional de Los Ángeles | {SpeechPart=”Sustantivo”} |
Caracteres especiales
La primera columna puede contener caracteres especiales como guiones, apóstrofos o signos de almohadilla. No se necesitan caracteres de escape especiales cuando se utilizan caracteres especiales en su léxico. Lo mismo se aplica a las letras con signos diacríticos como acentos, tildes, circunflejos, etc.
Sin embargo, tenga en cuenta que cuando el motor de PNL analiza caracteres especiales, los ve como palabras separadas:
- La frase “~dos días” se analiza como tres palabras: “~”, “dos” y “días”. Si crea una entrada de léxico para “~dos días”, no coincidirá con sus datos. En lugar de eso, el léxico debería leerse “~ dos días” (observe el espacio entre “~” y “dos”).
- La frase ‘Total Recall’ (con comillas incluidas) se analiza como 4 palabras. Para capturar esta frase, la entrada del léxico debe tener espacios entre las comillas y la palabra adyacente y leerse como “Recuerdo total”.
Períodos
Cuando las siglas contienen puntos entre cada letra, no es necesario el espacio adicional. Por ejemplo, para el acrónimo “boa” no se necesita espacio extra. Sin embargo, para los léxicos que terminan con una sola letra, como “John D.”, se necesita el espacio y se convierte en “John D”.
Hashtags y menciones @
Al agregar una nueva entrada, las formas de una palabra mencionadas (@) o con hashtag (#) no se incluyen automáticamente. Si desea que estos formen parte de su entrada de léxico, haga filas separadas.
Ejemplo: # qualtrics y @ qualtrics requerirán líneas separadas para asignarse a “qualtrics”. Tenga en cuenta que no necesita un espacio entre # o @ y su término en estos casos.
qualtrics | CSYN | qualtrics | {SpeechPart=”Sustantivo”} |
qualtrics | CSYN | qualtrics | {SpeechPart=”Sustantivo”} |
qualtrics | CSYN | qualtrics | {SpeechPart=”Sustantivo”} |
Diacríticos
Si su variación incluye una marca diacrítica, el diccionario solo reconocerá esa variación específica. Sin embargo, si su variación no incluye una marca diacrítica, el diccionario reconocerá tanto la forma no marcada como la marcada. En muchos casos, es mejor utilizar la forma sin marcar como variación porque ayuda a capturar palabras cuando los usuarios son demasiado perezosos para usar el carácter diacrítico. Sin embargo, tenga cuidado, ya que hay muchos ejemplos de palabras que cambian completamente su significado cuando se les añade un signo diacrítico.
Ejemplo: La siguiente entrada capturará te y té. ¡Aunque estas palabras tienen diferentes significados en español! Te = tú, té = té.
tú | CSYN | té | {SpeechPart=”Sustantivo”} |
La entrada a continuación, sin embargo, capturará sólo té y no te.
té | CSYN | té | {SpeechPart=”Sustantivo”} |
Asteriscos
Al trabajar con datos que hayan sido redactados con asteriscos, agregue espacios entre los asteriscos en su entrada de léxico.
* * * * * * | CSYN | [Redactado] | {SpeechPart=”Sustantivo”} |
Columna 2: Código de sinónimos
La segunda columna del archivo léxico contiene el código de sinónimo que le indica al motor de PNL cómo leer la variación escrita en la columna uno.
Hay varios códigos aceptados:
- SINÓNIMO: Este es un Sinónimo. El código SYN le dice al motor NLP que la variación en la columna uno debe interpretarse exactamente como está escrita. Se tiene en cuenta la capitalización. Este código es útil al crear léxicos basados en acrónimos en los que el acrónimo adquiere un nuevo significado cuando no está en mayúscula, como la abreviatura del aeropuerto LAX y la palabra lax.
- CSYN: En determinadas circunstancias, esto es una Sinónimos que no distinguen entre mayúsculas y minúsculas. El código CSYN, cuando se utiliza con cualquier palabra que comience con una letra minúscula, le indica al motor de PNL que la variación en la columna uno debe interpretarse sin tener en cuenta la mayúscula. Utilice este código cuando solo desee capturar la forma específica de la palabra que figura en la variación y cuando la variación no sea un término estándar del diccionario.
- CSYN: En determinadas circunstancias, esto es una Sinónimos de título en mayúsculas y minúsculas. El código CSYN, cuando se utiliza con cualquier palabra que comience con una letra mayúscula, le dice al motor de PNL que la variación en la columna uno debe interpretarse sin tener en cuenta la mayúscula, con la salvedad clave de que la primera letra de la primera palabra debe comenzar con una letra mayúscula. Utilice este código cuando desee capturar un nombre propio que puede ser ambiguo si no se escribe con mayúscula, como la empresa “Best Buy” o los productos de la marca/organización “Great Value” de Walmart. El uso de mayúsculas y minúsculas CSYN debería ser algo poco frecuente. Los léxicos deben estar diseñados para ser lo más tolerantes posible al uso de mayúsculas no estándar. Sin embargo, en ciertos casos, esta sintaxis será útil.
- MSYN: Este es un Sinónimo insensible a la morfología. El código MSYN le indica al motor de PNL que amplíe la entrada del léxico para incluir sus formas morfológicas relacionadas (por ejemplo, “saltar” incluye “saltos”, “saltando” y “saltó”. XM Discover incluye todas las variaciones morfológicas independientemente de la parte del discurso que especifique. No necesitaría filas adicionales en el archivo léxico para manejar estas diferentes formas verbales. Los sufijos “-er” y “-est” no son parte de la misma forma normal y no están incluidos en una expansión MSYN.
Consejo Q: El código MSYN solo funcionará con términos del diccionario estándar. Es posible que los diccionarios XM Discover no conozcan las formas morfológicas correctas para nombres propios como Qualtrics. Tenga en cuenta también que al utilizar MSYN, todas las variaciones se considerarán sin distinción entre mayúsculas y minúsculas. Utilice el código MSYN siempre que su léxico incluya términos de diccionario en los que desee incluir sufijos alternativos. Este método hará que su lista de léxico sea más corta y más inclusiva de variaciones del idioma.
Columna 3: Forma normal
La tercera columna del archivo léxico debe contener opcionalmente la “forma normal” de la palabra.
La forma normal, o token maestro, es la versión que aparecerá en Designer. Esta palabra o frase debe ser la versión estándar de las variaciones que ha definido en la columna uno. La forma normal debe repetirse en las líneas subsiguientes del archivo de léxico para cada variación correspondiente en la columna uno.
El motor de PNL capitaliza automáticamente la forma normal cuando se procesa el diccionario léxico. Como resultado, no distingue entre mayúsculas y minúsculas. Si se omite esta columna, la variación en la columna uno se asignará como forma normal.
Al igual que la columna uno, la columna tres puede contener caracteres especiales como guiones, apóstrofos o signos de almohadilla. No se necesitan caracteres de escape especiales cuando se utilizan caracteres especiales en su léxico. Lo mismo se aplica a las letras con signos diacríticos como acentos, tildes, circunflejos, etc.
Columna 4: Etiquetas
La cuarta columna del archivo léxico proporciona un lugar para definir atributos gramaticales para su entrada léxica específica.
En la mayoría de los casos, solo necesitará indicar la SpeechPart en la columna 4. Sin embargo, en algunos casos es posible que también desee especificar el grado, el tiempo, etc. Este punto es especialmente cierto con los léxicos no ingleses que requieren concordancia en caso, género, número, etc. entre las palabras. Puede optar por agregar SemanticType cuando corresponda. Estos metadatos podrán utilizarse en el futuro para Entidades inteligentes.
Se pueden definir uno o varios atributos para cada entrada del léxico. Todos los atributos deben estar encapsulados entre {llaves}. Cada valor de atributo debe estar entre comillas. Los atributos múltiples se separan mediante una coma y un espacio.
acero inoxidable | MSYN | acero inoxidable | {SpeechPart=”Sustantivo”, Sentimiento=”0″} |
Las posibles etiquetas y sus valores son:
- Caso (uno de los siguientes):
- Indefinido (predeterminado)
- Nominativo
- Objetivo
- Común
- Posesivo
- Banderas de control:Combinación de los siguientes valores ( lista separada por punto y coma):
- Vacío (predeterminado)
- Sujeto Animado
- SujetoInanimado
- ObjetoAnimate
- Objeto inanimado
- Animación de objeto indirecto
- Objeto indirecto inanimado
- Infinitivo
- Adjetivo o sustantivo
- Adjetivo
- PrepNoun
- PrepAdj
- ObjetoSentence
- SujetoOración
- Sujeto Infinitivo
- Modificador de adverbio
- ObjetoVP
- Verbo frasal
- Adjetivo apropiado
- Preposiciones de control: Una lista de preposiciones separadas por comas. Este atributo debe establecerse si ControlFlags tiene uno de los siguientes valores: PrepNoun, PrepAdj o PhrasalVerb. Por defecto está vacío.
- Vacío (predeterminado)
- Grado:Una de las siguientes cadenas:
- Indefinido (predeterminado)
- Comparativo
- Superlativo
- Género:Una de las siguientes cadenas:
- Indefinido (predeterminado)
- Masculino
- Femenino
- Número:Una de las siguientes cadenas:
- Indefinido (predeterminado)
- Singular
- Plural
- Persona:Una de las siguientes cadenas:
- Indefinido (predeterminado)
- Primera
- Segundo
- Tercero
- Tipo de pronombre:Una de las siguientes cadenas:
- Indefinido (predeterminado)
- Personal
- Posesivo
- Demostrativo
- PosesivoAbsoluto
- Reflexivo
- Relativo
- Tipo apropiado:Una de las siguientes cadenas:
- No (predeterminado)
- Desconocido
- Nombre
- Apellido
- Nombre de la persona
- Organización
- Geografía
- Semántico:Combinación de los siguientes valores ( lista separada por punto y coma):
- Organización
- Comunicación
- Grupo
- Acción
- Artefacto
- Ubicación
- Cognición
- Relación
- Hora
- Comida
- Sustancia
- Estado
- Procesar
- Objeto
- Posesión
- Fenómeno
- Planta
- Forma
- Cuerpo
- Persona
- Partes superiores
- Evento
- Atributo
- Animal
- Geografía
- Cantidad
- Sentimiento
- Motivo
- Sentimiento:Valor entero que evalúa una medida de la palabra correspondiente sentimiento.
- Parte del discurso:Una de las siguientes cadenas:
- Desconocido (predeterminado)
- Adverbio
- Adjetivo
- AdjetivoPronombre
- Pronombre
- Pronombre interrogativo
- Sustantivo
- Verbo
- Participio I
- ParticipioII
- Gerundio
- Auxiliar
- Verbo modal
- Preposición
- ConjunciónCoordinada
- ConjunciónSubordinada
- Modificador de oración
- Partitivo
- Proforma
- Determinante
- Introductorio
- Número cardinal
- NumeralOrdinal
- Partícula
- Artículo
- Marca de infinitivo
- Especial
- Interruptor automático
- Delimitador
- Tenso:Una de las siguientes cadenas:
- Indefinido (predeterminado)
- Pasado simple
- Presente simple
- Futuro simple
- PasadoContinuo
- Presente Continuo
- FuturoContinuo
- Pasado Perfecto
- Presente Perfecto
- Futuro perfecto
- PasadoPerfectoContinuo
- Presente Perfecto Continuo
- FuturoPerfectoContinuo
- Futuro en el pasado simple
- Futuro en el pasado perfecto
- Futuro en el pasado Continuo
- Futuro en el pasado perfecto continuo
- Perfecto
- Continuo
- Simple
- PerfectoContinuo
- Indefinido
- Voz:Una de las siguientes cadenas:
- Indefinido (predeterminado)
- Activo
- Pasivo
Etiqueta SpeechPart
El Parte del discurso La etiqueta define cuándo debe aplicar el léxico, no cómo debe aplicarse. Al agregar la etiqueta SpeechPart=”Noun” a una entrada de léxico, le está indicando al motor de PNL que aplicar el léxico cuando el término se use como sustantivo en cualquier oración determinada detectada por el motor de PNL. Esta etiqueta no le dice al motor NLP que establezca el léxico como sustantivo. Asegúrese de definir la parte correcta del discurso al preparar su archivo de léxico.
El @fósforo etiqueta es una sintaxis poderosa para usar cuando necesitas modificar una palabra estándar. Cuando agrega un léxico, se agrega una entrada para la palabra específica a los diccionarios XM Discover que están instalados con su cuenta. Al agregar un término marca/organización como “qualtrics”, que anteriormente no existía en los diccionarios de inglés estándar, el término recibe una entrada con la parte del discurso designada. Esta entrada se activará cuando el término se utilice como esa parte del discurso en datos reales. Para las palabras que ya existen en los diccionarios estándar, la entrada del léxico simplemente agregará otra fila al diccionario para la parte designada del discurso. Cuando la palabra aparece en su conjunto de datos, el motor de PNL determinará su parte del discurso en esa oración y asignará los atributos lingüísticos correspondientes. En algunos casos, agregar un léxico para un término de diccionario estándar dará como resultado múltiples entradas con la misma parte del discurso para una sola palabra. Cuando existen varias entradas de partes del discurso para una sola palabra, es posible que el motor de PNL no asigne la correcta. Para evitar este problema, puede utilizar la etiqueta @match para anular todas las entradas preexistentes para esa combinación de parte del discurso/palabra. En muchos casos, se pueden lograr resultados similares utilizando reglas de excepción posicional con indicadores de partes del discurso en Designer.
Ejemplo: De forma predeterminada, “issue” aparece como un verbo neutral y un sustantivo negativo. Sin embargo, es posible que desees reemplazar el sustantivo negativo con un sustantivo neutral para cuenta casos como “número de una revista”. Al utilizar la etiqueta @match, le indica al motor de PNL que anule cualquier otra entrada para ISSUE como sustantivo con esta entrada, lo que establecerá su sentimiento en 0.
asunto | MSYN | asunto | {SpeechPart=”Sustantivo” @match, Sentimiento=”0″} |
Ejemplo: Descubrió un error en el cual el adjetivo “impresionante” se asignaba a la forma verbal de “aturdir”. Para cambiarlo a “impresionante”, puedes usar SpeechPart=”Adjective” y el código @match para anular la entrada existente para “impresionante” como adjetivo.
impresionante | CSYN | impresionante | {SpeechPart=”Adjetivo” @match) |
Consejos para crear un archivo léxico
- Escribe siempre tus variaciones léxicas (columna uno) en minúsculas, a menos que tenga un caso de uso específico para el uso de mayúsculas, como un acrónimo ambiguo.
- Si su léxico es una sola palabra, probablemente no necesite definirla por sí sola ya que el motor de PNL ya la reconocerá como una entidad. Si su léxico requiere una distinción específica entre mayúsculas y minúsculas, deberá definirlo de antemano.
- Usar MSYN cuando su léxico contiene términos de diccionario estándar. Esto incluirá automáticamente otras formas de palabras para que no tengas que crear líneas de pedido específicas para cada una.
- Si no está seguro de si su léxico contiene términos estándar del diccionario, utilice CSYN.
- Si su entrada de léxico contiene un carácter especial al principio o al final de la palabra, su variación en columna uno Debe haber un espacio entre el carácter y la palabra. Por ejemplo, “Black Friday” debería ser “Black Friday” (tenga en cuenta los espacios).
- Los léxicos no incluyen automáticamente variaciones de los prefijos @ y #. Debes definirlos por separado.
- Prepare su archivo en un editor de texto (como Notepad++ en Windows o TextEdit en Mac) y guarde el archivo como un tipo de archivo DCT.
- Si está creando un archivo léxico en una Mac, asegúrese de utilizar el carácter de salto de línea de retorno de carro (CRLF) entre filas. Este carácter es legible tanto en Windows como en Mac, lo que contrasta con el carácter de retorno de carro (CR) más común utilizado en aplicaciones de Windows y el carácter de avance de línea (LF) utilizado en Mac. La distinción entre estos tipos es invisible en muchos editores de texto, incluida la aplicación TextEdit que es nativa de MacOS. Recomendamos utilizar una aplicación descargable llamada TextWrangler. Hay una configuración en la parte inferior de esta aplicación que le permite seleccionar qué estilo de salto de línea desea utilizar. Seleccione la opción Windows antes de crear su archivo de léxico.