从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调用所需的信息.
标签:wordnet,nlp,c-3,python 来源: https://codeday.me/bug/20191105/1998554.html