通常、Wordリストはすべてを含む1つのファイルですが、個別にダウンロード可能な名詞リスト、動詞リスト、形容詞リストなどはありますか?
特に英語で必要です。
ケビンの単語リスト を参照してください。特に「品詞データベース」。自分でデータベースを複数のファイルにするには、最小限のテキスト処理を自分で行う必要がありますが、これはいくつかのgrep
コマンドで非常に簡単に行うことができます。
ライセンス条項は、「readme」ページで入手できます。
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
これはGoogleの高ランクの結果なので、この2年前の質問を掘り下げて、既存の質問よりもはるかに良い答えを提供しています。
"Kevin's Word Lists"ページは、WordNet 1.6に基づいた2000年の古いリストを提供します。
https://wordnet.princeton.edu/download/current-version にアクセスしてWordNet 3.0(データベースのみのバージョン)をダウンロードするか、最新バージョンをダウンロードする方がはるかに良いです。これを読んで。
解析は非常に簡単です。 "/^(\S+?)[\s%]/"
の正規表現を適用してすべてのWordを取得し、結果のすべての"_"
(アンダースコア)をスペースで置き換えます。最後に、結果を任意のストレージ形式にダンプします。形容詞、副詞、名詞、動詞の個別のリストと、嗅覚、視覚、聴覚などの感覚に関連する「感覚」と呼ばれる特別な(何をしているかによっては非常に役に立たない/役に立たない)リストさえも与えられます、つまり「シャツ」や「辛味」などの単語。
楽しい!プロジェクトで使用する場合は、著作権表示を忘れずに含めてください。
他の人が示唆したように、 WordNetデータベースファイル は品詞の優れたソースです。そうは言っても、単語を抽出するために使用される例は完全に正しいわけではありません。各行は実際には、複数の同義語とその定義で構成される「同義語セット」です。単語の約30%は同義語としてのみ表示されるため、最初の単語を抽出するだけでは大量のデータが失われます。
行の形式は解析が非常に簡単です(search.c
、関数parse_synset
)。ただし、興味があるのが単語の場合、行の関連部分は次のようにフォーマットされます。
NNNNNNNN NN a NN Word N [Word N ...]
これらは以下に対応します:
たとえば、data.adj
から:
00004614 00 s 02 cut 0 shortened 0 001 & 00004412 a 0000 | with parts removed; "the drastically cut film"
s
であり、形容詞に対応しています(wnutil.c
、関数getpos
)cut
です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
。
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