Dictionary 名词、动词、形容词等的单独词表

Dictionary 名词、动词、形容词等的单独词表,dictionary,grammar,spell-checking,Dictionary,Grammar,Spell Checking,通常单词列表是一个包含所有内容的文件,但是否有可单独下载的名词列表、动词列表、形容词列表等 我特别需要英文版。请参阅。特别是“词性数据库”。您必须自己进行一些最小的文本处理,以便自己将数据库放入多个文件中,但这可以通过几个grep命令轻松完成 许可条款可以在“自述”页面上找到。这是一个排名很高的谷歌结果,因此我正在挖掘这个2年前的问题,以提供比现有问题更好的答案 “Kevin的单词列表”页面提供了2000年的旧列表,基于WordNet 1.6 阅读本文时,最好去下载WordNet 3.0(仅数据

通常单词列表是一个包含所有内容的文件,但是否有可单独下载的名词列表、动词列表、形容词列表等

我特别需要英文版。

请参阅。特别是“词性数据库”。您必须自己进行一些最小的文本处理,以便自己将数据库放入多个文件中,但这可以通过几个
grep
命令轻松完成


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

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

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

阅读本文时,最好去下载WordNet 3.0(仅数据库版本)或任何最新版本

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


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

如果您仅从中下载数据库文件,则可以通过运行以下命令来提取文字:

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
或者如果您只需要单个单词(无下划线)

每个词性词汇表条目包括一个单词或短语字段,后跟一个字段分隔符(ASCII 215),以及使用以下ASCII符号编码的词性字段(大小写重要):


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

行格式的解析非常简单(
search.c
,function
parse\u synset
),但是如果您只对单词感兴趣,那么行的相关部分的格式为:

NNNNNNNN NN a NN word N [word N ...]
这些对应于:

  • 文件中的字节偏移量(8个字符的整数)
  • 文件号(2个字符的整数)
  • 词性(1字)
  • 字数(2个字符,十六进制编码)
  • 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
    ,function
    getpos
  • 字数是2
    • 第一个单词是
      cut
      ,词法ID为0
    • 第二个单词是
      缩短的
      ,词法ID为0

一个简短的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
    }
}
#/usr/bin/perl
while(我的$line=){
#如果不存在8位字节偏移量,则跳过此行
如果($line!~/^[0-9]{8}\s/){next;}
chomp($line);
my@tokens=拆分(/,$line);
移位(@tokens)#字节偏移量
shift(@tokens);#文件号
移位(@tokens)#词性
我的$word_count=hex(移位(@tokens));
foreach(1..$word\u计数){
我的$word=shift(@tokens);
$word=~tr/u/;
$word=~s/\(.*)/;
打印$word,“\n”;
移位(@tokens)#词法ID
}
}
可以找到上述脚本的要点。
可以找到一个更健壮的解析器,它与原始源代码保持一致


这两个脚本的使用方式相似:
/wordnet\u parser.pl DATA\u FILE

您使用哪些文件?请注意,wordnet 3.0不包含变位符,例如,如果您在动词列表中搜索单词“are”,它将一无所获。当然“be”在那里,所以动词在那里,只是没有变位。链接已经死了。这似乎并没有给4年前说过的话增添多少。你自己说吧,这正是我需要的。谢天谢地!链接断了,认为应该是:你是真正的MVP!不确定windows中剪切的cmd,所以在记事本++搜索中执行了:^[^a-z]*?[a-z][^a-z]*?([a-zA-z]+)。?$Replace:\1非常感谢您为这个旧问题添加了这个有用的答案。你确实让我的生活轻松多了。如果可以的话,我会再投票99次。
00004614 00 s 02 cut 0 shortened 0 001 & 00004412 a 0000 | with parts removed; "the drastically cut film"
#!/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
    }
}