如何使用java对属于特定区域的字符串进行分类?

时间:2014-02-02 13:33:57

标签: java nlp artificial-intelligence text-processing information-retrieval

简短介绍
我从一组PDF文件中提取了一堆文本。这些文本是文档的标题..

我的目标是根据出现的标题对标题进行分类。也就是说,如果标题包含Car,则必须将其归类为automobile

我的目标示例

想象一下以下标题:

  

1)分布式网状网络
     2)监控自备服务器机架系统
  3)汽车侧板
  4)基于位置的车辆消息系统

现在,上述标题必须归类为

  

第一个标题包含术语网络,因此归类为网络
  第二个标题包含术语服务器,因此归类为网络
  第3个标题包含术语汽车,因此归类为汽车
  第4个标题包含术语“车辆”,因此归类为汽车

这就是我需要的。

我的作品

为了实现我的目标,我在每个类别的文本文件中创建了一个术语索引,并将其与标题匹配..如果它在文本文件中包含一个单词,则标题将被分类。

例如

Automobile.txtcar , gear , wheel , clutch
networking.txtserver,IP Address,TCP , RIP

这是算法:

String Classify (String title)
{
 String area;
 if (compareWordsFrom ("Automobile.txt",title) == true ) area = "Auto";
 if (compareWordsFrom ("Netoworking.txt",title) == true ) area = "Networking";
 if (compareWordsFrom ("metels.txt",title) == true ) area = "Metallurgy";
 return area;
}

我的问题
我的问题是,很难找到相关的词来构建索引。也就是说,现场汽车有1000个难以找到的相关术语。

准确地说,手动构建术语索引是一个令人心碎的过程。

我的需要
我需要一种自动化的工作方式。自然语言处理技术能够做到这一点。 ?或者我有一个现成的图书馆?

2 个答案:

答案 0 :(得分:1)

http://en.wikipedia.org/wiki/WordNet

  

WordNet是一个英语词汇数据库。它组   英语单词成同义词集合称为synsets,提供简短,   一般定义,并记录各种语义关系   在这些同义词集之间。目的是双重的:生产一个   字典和词库的组合更直观   可用,并支持自动文本分析和人工   情报应用。数据库和软件工具已经存在   在BSD风格许可下发布,可以下载和使用   自如。数据库也可以在线浏览。

WordNet:http://wordnet.princeton.edu/

答案 1 :(得分:0)

如果你还没有完成,我认为你应该看看Lucene