微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从Wordnet提取以特定字母开头的所有单词

如何从wordnet中提取所有以特定字母开头的单词.例如,如果我键入A,则wordnet应该返回以字母A开头的所有单词.

解决方法:

我最容易看到的方法是从here下载其数据库,然后解析每行第五个元素的以空格分隔的数据文件(data.adj,data.adv,data.noun,data.verb),并将其放入相关数据结构.

可能是一个哈希表,其中以起始字母为键,每个元素为以该字母开头的单词数组.

是否使用动态数组还是常规数组,然后首先解析文件获取每个字母的单词数(数组大小),由您决定.

下面的代码示例用C编写,并通过wordnet数据文件读取并打印有问题的单词.它绝不抛光,很快就制成了.

#include <stdio.h>
#include <string.h>
int main(int argc,char**argv)
{
  FILE *fp;

  fp=fopen("data.noun", "r");
  char line [ 3000 ];
  while ( fgets ( line, sizeof line, fp ) != NULL )
  {
      char *result = NULL;
      int count =0;
      result = (char*)strtok( line, " ");
      count++; 
      while( result != NULL ) 
      {
      if (count == 5) 
      {
          printf( "result is \"%s\"\n", result );
      }
      result = (char*)strtok( NULL, " ");
      count++;
      }
  }
  return 0;
}

有关WordNet数据库格式的更多文档,请参见here

如果您想使用WordNet C API,请参阅文档here中的findtheinfo函数,尽管我认为该函数并非旨在返回使用该API调用所需的信息.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐