在WordNet中有词语的各种信息,定义、同义、上位、下位、实例、包含等等关系的词集,通过调用相应方法可一一获取,然后进行同义词计算、类别划分等操作。源码的main()函数在wn.c文件中。注意:若在windows环境下调用,则需要在wn.h和wnutil.c文件首行添加 #define _WINDOWS 123 宏定义,否则编译报错。
//print the synset and hypernym of the input word
void printHype(char *word,int dbase)
{
SynsetPtr SynPtr, next,HypePtr,hypeNext;
int cntSense;
char *wordIn,str[WORDBUF];
//得到word参数的原型
if(morphstr(word,dbase))
{
wordIn = morphstr(word,dbase);
}
else
{
strcpy(str,word);
ToLowerCase(str);
wordIn = strsubst(str,' ','_');
}
//printf("target wordIn: %s\n",wordIn);
//同义词
//findtheinfo_ds()函数第二个参数表示词性所在的数据库,ADJ为形容词;第三个参数表示所在词集,SYNS表示同义词集,ANTPTR表示反义词集。
SynPtr = findtheinfo_ds(wordIn, dbase, SYNS, ALLSENSES);
if(SynPtr == NULL)
{
printf("word error: %s\n",word);
return -1;
}
next = SynPtr;
cntSense = 1;
pri