Подтвердить что ты не робот

Отдельные списки слов для существительных, глаголов, прилагательных и т.д.

Обычно списки слов - это 1 файл, который содержит все, но есть ли отдельно загружаемый список существительных, список глаголов, список прилагательных и т.д.

Мне нужны они специально для английского.

4b9b3361

Ответ 1

Смотрите списки слов Кевина. В частности, "Часть речевой базы данных". Вам нужно будет сделать небольшую текстовую обработку самостоятельно, чтобы получить базу данных в несколько файлов для себя, но это можно сделать очень легко с помощью нескольких команд grep.

Условия лицензии доступны на странице "readme".

Ответ 2

Это результат высокого рейтинга Google, поэтому я выкапываю этот двухлетний вопрос, чтобы дать гораздо лучший ответ, чем существующий.

Страница "Списки слов Кевина" содержит старые списки с 2000 года на основе WordNet 1.6.

Вам гораздо лучше перейти на http://wordnet.princeton.edu/wordnet/download/current-version/ и загрузить WordNet 3.0 (только для базы данных) или любую другую последнюю версию, когда вы читаете это.

Разбор очень простой; просто примените регулярное выражение "/^(\S+?)[\s%]/", чтобы захватить каждое слово, а затем замените все "_" (подчеркивания) в результатах пробелами. Наконец, дамп ваши результаты в любой формат хранения, который вы хотите. Вам будут предоставлены отдельные списки прилагательных, наречий, существительных, глаголов и даже специальный (очень бесполезный/полезный в зависимости от того, что вы делаете) список, называемый "чувства", который относится к нашим чувствам обоняния, зрения, слуха и т.д., т.е. такие слова, как "рубашка" или "острая".

Наслаждайтесь! Не забудьте включить их уведомление об авторских правах, если вы используете его в проекте.

Ответ 3

Если вы загружаете только файлы базы данных из http://wordnet.princeton.edu/wordnet/download/current-version/, вы можете извлечь слова, выполнив следующие команды:

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

Или, если вам нужны только отдельные слова (без подчеркивания)

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

Ответ 4

Как и другие, файлы базы данных WordNet являются отличным источником для частей речи. Тем не менее, примеры, используемые для извлечения слов, не совсем корректны. Каждая строка на самом деле представляет собой "набор синонимов", состоящий из нескольких синонимов и их определения. Около 30% слов появляются только как синонимы, поэтому простое извлечение первого слова пропускает большой объем данных.

Формат строки довольно прост для синтаксического анализа (search.c, function parse_synset), но если все, что вас интересует, это слова, соответствующая часть строки отформатируется как:

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

Они соответствуют:

  • Смещение байта внутри файла (8 символов)
  • Номер файла (2 символа)
  • Часть речи (1 символ)
  • Количество слов (2 символа, в шестнадцатеричном кодировании)
  • N вхождений...
    • Слово с пробелами заменено символами подчеркивания, необязательный комментарий в круглых скобках
    • Слово лексический идентификатор (уникальный идентификатор вхождения)

Например, из data.adj:

00004614 00 s 02 cut 0 shortened 0 001 & 00004412 a 0000 | with parts removed; "the drastically cut film"
  • Смещение байта внутри файла - 4614
  • Номер файла 0
  • Часть речи s, соответствующая прилагательному (wnutil.c, function getpos)
  • Число слов - 2
    • Первое слово cut с лексическим идентификатором 0
    • Второе слово shortened с лексическим идентификатором 0

Короткий Perl script, чтобы просто выгрузить слова из файлов 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
    }
}

Сущность приведенного выше script может быть найдена здесь.
Более надежный парсер, который остается верным исходному источнику, можно найти здесь.

Оба сценария используются аналогичным образом: ./wordnet_parser.pl DATA_FILE.

Ответ 5

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

Каждая часть словарного запаса словаря состоит из слова или фразового поля, за которым следует разделитель полей (ASCII 215) и поле части речи, которое кодируется с использованием следующих символов ASCII (случай значителен):

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