自动提取关键字
以英文为例,其他暂不考虑
数据库产品描述列,自动提取关键字
1:该单词出现频率最高.
2: E文也有短语,怎样获取?
3: ??
------解决方案--------------------没单词库你如何判断词性?
------解决方案--------------------帮顶。。。
------解决方案--------------------分词,搜索关键字
Dictionary<char, int> counter = new Dictionary<char, int>();
string s = "";
char max = s[0];
foreach (char c in s)
{
if (!char.IsLetter(c)) continue;
if (counter.ContainsKey(c))
counter[c]++;
else counter.Add(c, 1);
if (counter[max] < counter[c]) max = c;
}
------解决方案--------------------不用关键字库,那就是人工智能了。。楼主加油。。
------解决方案--------------------没有词库,也就是没有样例,机器根本就分不出他是谁
就是人,也是因为大脑里存了很多信息以后,才能识别事物
就像刚出生的小孩,连爸妈是谁都不知道
必须要学习,积累后才能识别
------解决方案--------------------ajax中好像有个智能提示的控件
------解决方案--------------------不用关键字词库的话,this、the这些提取出来你用什么规则过滤
------解决方案--------------------肯定是要有关键字库的,一般可以用名词作关键字,或者动名称作关键字
字库的来源可以有两种,一种是用户工作输入其关键字后保存到库里面,进行次数累加
另一种是去百度等搜索引擎里面去抓取一些关键词来做词库
反正这个词库也是动态递增的
如果没有词库的话,就像楼上说的7楼说的就是人工智能了,人工智能也是把关键词保存到了大脑中,才可以提炼的,要不然就是随机生成文字拼凑,那样也没有意义了
------解决方案--------------------或许我们可以这么理解:并非绝对不用关键词库,而是使用一个存储少量数据的词库。
这个库的初步构成为the、a、an、is之类的无意义词。
在提取过程中以空格分割,优先提取is之前的词(名词)、a、the之后的词(形容词或名词)。
本来还多写点,仔细算了下这样效率不是很好,不写了。
一点拙见,还请哪位大牛指教下提取规则(现在肯定是有不使用大词库提取关键字的规则的)。
------解决方案--------------------想法:
1. 依空格查出每个单词
2. 将单词存入数组
3. 检查出现次数,同时更新数组
4. 最后查出最大值
------解决方案--------------------提供一个想法~
首先要确定单词,就必须提供单词的断句吧~假设以空格来划分单词的话,先提取出一部分单词,然后在比较小的一份范围内搜索(比如说前10条记录),如果该单词在范围内出现过,则记录该单词,并继续进行搜索,每多出现一次就加一,最后得出重复次数最多的单词?
嗯,这个算法应该算贪心算法吧,并不一定能够得到最优解,但是我觉得还可行~
------解决方案--------------------Mark
我们公司用的是:用文本库查关键字
------解决方案--------------------顶顶~~********************************************************
本内容用 CSDN小秘书 回复
每天回帖即可获得10分可用分!
********************************************************
------解决方案--------------------没有库的话,只能以最小单位的字和单词作为库,再通过高频率的字或单词索引找关联的词。
Word的提取关键字不知道怎么弄的。
------解决方案--------------------MSDN 上有关于用 Regex 获取一段文本中出现单词的频率,但那个文本是英文的 \b可以判断出单词边界
中文的没办法,貌似只能用词库
------解决方案--------------------语料库 必须的!
------解决方案--------------------想了一下,不用关键词库,还真没办法比对。
------解决方案--------------------应该是要有关键字库。。
mark
------解决方案--------------------楼主很强,没研究过,帮顶
------解决方案--------------------人类语言的分析, 很强大哦
------解决方案--------------------有点复杂
------解决方案--------------------可以把,我试过,就是中文乱码,还有词性没有过滤,有些关键字提取出来了,就是定义最小长度,最小词频,保留有交集的而词频相等最长的关键字,就是中文会出现乱码,位置没有考虑中文,截取出现了问题