web-dev-qa-db-ja.com

名詞、動詞、形容詞などの個別の単語リスト

通常、Wordリストはすべてを含む1つのファイルですが、個別にダウンロード可能な名詞リスト、動詞リスト、形容詞リストなどはありますか?

特に英語で必要です。

29

ケビンの単語リスト を参照してください。特に「品詞データベース」。自分でデータベースを複数のファイルにするには、最小限のテキスト処理を自分で行う必要がありますが、これはいくつかのgrepコマンドで非常に簡単に行うことができます。

ライセンス条項は、「readme」ページで入手できます。

8
JXG

wordnet.princeton.edu/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
35
Chilly

これはGoogleの高ランクの結果なので、この2年前の質問を掘り下げて、既存の質問よりもはるかに良い答えを提供しています。

"Kevin's Word Lists"ページは、WordNet 1.6に基づいた2000年の古いリストを提供します。

https://wordnet.princeton.edu/download/current-version にアクセスしてWordNet 3.0(データベースのみのバージョン)をダウンロードするか、最新バージョンをダウンロードする方がはるかに良いです。これを読んで。

解析は非常に簡単です。 "/^(\S+?)[\s%]/"の正規表現を適用してすべてのWordを取得し、結果のすべての"_"(アンダースコア)をスペースで置き換えます。最後に、結果を任意のストレージ形式にダンプします。形容詞、副詞、名詞、動詞の個別のリストと、嗅覚、視覚、聴覚などの感覚に関連する「感覚」と呼ばれる特別な(何をしているかによっては非常に役に立たない/役に立たない)リストさえも与えられます、つまり「シャツ」や「辛味」などの単語。

楽しい!プロジェクトで使用する場合は、著作権表示を忘れずに含めてください。

31
user652748

他の人が示唆したように、 WordNetデータベースファイル は品詞の優れたソースです。そうは言っても、単語を抽出するために使用される例は完全に正しいわけではありません。各行は実際には、複数の同義語とその定義で構成される「同義語セット」です。単語の約30%は同義語としてのみ表示されるため、最初の単語を抽出するだけでは大量のデータが失われます。

行の形式は解析が非常に簡単です(search.c、関数parse_synset)。ただし、興味があるのが単語の場合、行の関連部分は次のようにフォーマットされます。

NNNNNNNN NN a NN Word N [Word N ...]

これらは以下に対応します:

  • ファイル内のバイトオフセット(8文字の整数)
  • ファイル番号(2文字の整数)
  • 品詞(1文字)
  • 単語数(2文字、16進エンコード)
  • ...のN回の出現
    • スペースがアンダースコアに置き換えられた単語、括弧内のオプションのコメント
    • 単語の字句ID(一意の出現ID)

たとえば、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、関数getpos
  • 単語数は2 です
    • 最初の単語は語彙ID 0のcutです
    • 2番目の単語は字句ID 0のshortenedです

data.*ファイルから単語を単純にダンプする短いPerlスクリプト:

#!/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
    }
}

上記のスクリプトの要旨は here にあります。
元のソースに忠実な、より堅牢なパーサーを見つけることができます here

両方のスクリプトは同じように使用されます:./wordnet_parser.pl DATA_FILE

11
Mr. Llama

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