Listas de palabras separadas para sustantivos, verbos, adjetivos, etc


Por lo general, las listas de palabras son 1 archivo que contiene todo, pero ¿hay lista de sustantivos descargables por separado, lista de verbos, lista de adjetivos, etc.?

Los necesito específicamente para inglés.

Author: Abhay, 2010-02-18

5 answers

Ver Las listas de palabras de Kevin. Particularmente la " Parte De La Base De Datos De Voz."Tendrás que hacer un mínimo procesamiento de texto por tu cuenta, con el fin de obtener la base de datos en varios archivos por ti mismo, pero eso se puede hacer muy fácilmente con unos pocos comandos grep.

Los términos de la licencia están disponibles en la página "readme".

 8
Author: JXG,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-18 15:42:48

Este es un resultado de Google altamente calificado, por lo que estoy desenterrando esta pregunta de 2 años para proporcionar una respuesta mucho mejor que la existente.

La página "Listas de palabras de Kevin" proporciona listas antiguas del año 2000, basadas en WordNet 1.6.

Es mucho mejor ir a https://wordnet.princeton.edu/download/current-version y descargando WordNet 3.0 (la versión de solo base de datos) o cualquiera que sea la última versión cuando esté leyendo esto.

Analizar es muy simple; simplemente aplique una expresión regular de "/^(\S+?)[\s%]/" para agarrar cada palabra, y luego reemplace todos los "_" (guiones bajos) en los resultados con espacios. Finalmente, volcar los resultados a cualquier formato de almacenamiento que desee. Se te darán listas separadas de adjetivos, adverbios, sustantivos, verbos e incluso una lista especial (muy inútil/útil dependiendo de lo que estés haciendo) llamada "sentidos" que se relaciona con nuestros sentidos del olfato, la vista, el oído, etc., es decir, palabras como "camisa" o "picante".

Disfrute! Recuerde incluir su aviso de copyright si lo estás usando en un proyecto.

 30
Author: Tim Bennett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-01 04:06:14

Si descarga solo los archivos de la base de datos desde wordnet.princeton.edu/download/current-version puede extraer las palabras ejecutando estos comandos:

egrep -o "^[0-9]{8}\s[0-9]{2}\s[a-z]\s[0-9]{2}\s[a-zA-Z_]*\s" data.adj | cut -d ' ' -f 5 > conv.data.adj
egrep -o "^[0-9]{8}\s[0-9]{2}\s[a-z]\s[0-9]{2}\s[a-zA-Z_]*\s" data.adv | cut -d ' ' -f 5 > conv.data.adv
egrep -o "^[0-9]{8}\s[0-9]{2}\s[a-z]\s[0-9]{2}\s[a-zA-Z_]*\s" data.noun | cut -d ' ' -f 5 > conv.data.noun
egrep -o "^[0-9]{8}\s[0-9]{2}\s[a-z]\s[0-9]{2}\s[a-zA-Z_]*\s" data.verb | cut -d ' ' -f 5 > conv.data.verb

O si solo desea palabras individuales (sin guiones bajos)

egrep -o "^[0-9]{8}\s[0-9]{2}\s[a-z]\s[0-9]{2}\s[a-zA-Z]*\s" data.adj | cut -d ' ' -f 5 > conv.data.adj
egrep -o "^[0-9]{8}\s[0-9]{2}\s[a-z]\s[0-9]{2}\s[a-zA-Z]*\s" data.adv | cut -d ' ' -f 5 > conv.data.adv
egrep -o "^[0-9]{8}\s[0-9]{2}\s[a-z]\s[0-9]{2}\s[a-zA-Z]*\s" data.noun | cut -d ' ' -f 5 > conv.data.noun
egrep -o "^[0-9]{8}\s[0-9]{2}\s[a-z]\s[0-9]{2}\s[a-zA-Z]*\s" data.verb | cut -d ' ' -f 5 > conv.data.verb
 27
Author: Chilly,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-15 12:28:44

Como otros han sugerido, los archivos de base de datos WordNet son una gran fuente para partes del habla. Dicho esto, los ejemplos utilizados para extraer las palabras no son del todo correctos. Cada línea es en realidad un "conjunto de sinónimos" que consiste en múltiples sinónimos y su definición. Alrededor del 30% de las palabras solo aparecen como sinónimos, por lo que simplemente extraer la primera palabra le falta una gran cantidad de datos.

El formato de línea es bastante simple de analizar (search.c, function parse_synset), pero si todo lo que interesado en son las palabras, la parte relevante de la línea se formatea como:

NNNNNNNN NN a NN word N [word N ...]

Estos corresponden a:

  • Desplazamiento de bytes dentro del archivo (entero de 8 caracteres)
  • Número de archivo (entero de 2 caracteres)
  • Parte del habla (1 carácter)
  • Número de palabras (2 caracteres, codificados en hexadecimal)
  • N ocurrencias de...
    • Palabra con espacios reemplazados por guiones bajos, comentario opcional entre paréntesis
    • ID léxico de la palabra (una ocurrencia única ID)

Por ejemplo, de data.adj:

00004614 00 s 02 cut 0 shortened 0 001 & 00004412 a 0000 | with parts removed; "the drastically cut film"
  • El desplazamiento de bytes dentro del archivo es 4614
  • El número de archivo es 0
  • Parte del habla es s, correspondiente al adjetivo (wnutil.c, función getpos)
  • El número de palabras es 2
    • La primera palabra es cut con ID léxico 0
    • La segunda palabra es shortened con ID léxico 0

Un corto script de Perl para simplemente volcar las palabras de los archivos data.* :

#!/usr/bin/perl

while (my $line = <>) {
    # If no 8-digit byte offset is present, skip this line
    if ( $line !~ /^[0-9]{8}\s/ ) { next; }
    chomp($line);

    my @tokens = split(/ /, $line);
    shift(@tokens); # Byte offset
    shift(@tokens); # File number
    shift(@tokens); # Part of speech

    my $word_count = hex(shift(@tokens));
    foreach ( 1 .. $word_count ) {
        my $word = shift(@tokens);
        $word =~ tr/_/ /;
        $word =~ s/\(.*\)//;
        print $word, "\n";

        shift(@tokens); # Lexical ID
    }
}

Una síntesis del script anterior se puede encontrar aquí.
Un analizador más robusto que se mantiene fiel a la fuente original se puede encontrar aquí.

Ambos scripts se usan de manera similar: ./wordnet_parser.pl DATA_FILE.

 10
Author: Mr. Llama,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-06 18:17:52

Http://icon.shef.ac.uk/Moby/mpos.html

Cada entrada de vocabulario de parte de discurso consiste en un campo de palabra o frase seguido de un delimitador de campo de (ASCII 215) y el campo de parte de discurso que se codifica utilizando los siguientes símbolos ASCII (mayúscula es significativa):

Noun                            N
Plural                          p
Noun Phrase                     h
Verb (usu participle)           V
Verb (transitive)               t
Verb (intransitive)             i
Adjective                       A
Adverb                          v
Conjunction                     C
Preposition                     P
Interjection                   !
Pronoun                         r
Definite Article                D
Indefinite Article              I
Nominative                      o
 4
Author: Łukasz D. Tulikowski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-19 13:39:44