名词,动词,形容词等单独的单词列表

时间:2010-02-18 13:42:47

标签: dictionary grammar spell-checking

通常单词列表是包含所有内容的1个文件,但是可以单独下载名词列表,动词列表,形容词列表等吗?

我特意需要英语。

5 个答案:

答案 0 :(得分:33)

如果只从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

答案 1 :(得分:31)

这是一个排名很高的Google搜索结果,因此我正在挖掘这个2年前的问题,以提供比现有问题更好的答案。

“Kevin的单词列表”页面提供了基于WordNet 1.6的2000年的旧列表。

最好不要去https://wordnet.princeton.edu/download/current-version并下载WordNet 3.0(仅限数据库版本)或者阅读本文时的最新版本。

解析它非常简单;只需应用"/^(\S+?)[\s%]/"的正则表达式来抓取每个单词,然后用空格替换结果中的所有"_"(下划线)。最后,将结果转储到您想要的任何存储格式。您将获得单独的形容词,副词,名词,动词列表,甚至是一个特殊的(非常无用/有用取决于您正在做的事情)列表,称为“感官”,与我们的嗅觉,视觉,听觉等感官有关。 ,即“衬衫”或“刺鼻”等词语。

享受!如果您在项目中使用它,请记得包含他们的版权声明。

答案 2 :(得分:11)

正如其他人所说,WordNet database files是词性的重要来源。也就是说,用于提取单词的示例并不完全正确。每一行实际上都是一个“同义词集”,由多个同义词及其定义组成。大约30%的单词仅作为同义词出现,因此简单地提取第一个单词会丢失大量数据。

行格式很容易解析(search.c,函数parse_synset),但如果您感兴趣的只是单词,则该行的相关部分格式为:

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

这些对应于:

  • 文件中的字节偏移量(8个字符整数)
  • 文件编号(2个字符整数)
  • 词性(1个字符)
  • 字数(2个字符,十六进制编码)
  • N次出现......
    • 用下划线替换空格的单词,括号中的可选注释
    • Word词汇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
    • 第一个单词是cut,词汇ID为
    • 第二个单词是shortened,词汇ID为

简短的Perl脚本,只需转储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
    }
}

可以找到上述脚本的要点here 可以找到一个更稳健的解析器,它可以保持原始源的真实性here

两种脚本的使用方式类似:./wordnet_parser.pl DATA_FILE

答案 3 :(得分:8)

Kevin's word lists。特别是“词性数据库”。您必须自己进行一些最小的文本处理,以便自己将数据库分成多个文件,但这可以通过一些grep命令轻松完成。

许可条款可在“自述”页面上找到。

答案 4 :(得分: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