推荐一本书

Discussion in 'Model and Algorithm' started by xingkong123, Feb 19, 2010.

  1. 还有一个很重要的问题,那张图是用其他高级语言编写的程序将微博上的人名频率统计下来,然后下载到本地,制作成txt或EXECEL文件, 然后用R统计这一个文件 画出图来。
    文件格式应该是 姚晨的博客上 提到张三的频率 李四的频率。。。。。根据频率关系 画出圈子的图形,,用高级语言来写 就是一个for循环迭代,,for for for。。。。
    而IBM系统可以直接画出这张图,直接上网络,将程序做成网络爬行机器人,而不是下载整理后再分析。
    其次,R是自由软件,免费的,出了问题没保证,没人负责。IBM是有商业支持的,他们出了问题会有整个开发团队的人负责帮你解决问题。。。
     
  2. 一个免费软件,一个是商业软件,从未来发展来看,没有财力支持的R在文字挖掘上会被IBM甩下,不吃草的马儿能跑多块?而IBM是将文字挖掘定位为未来一个重要开发方向的。R就是靠一些发烧友的支持,和linux一个性质。
     
  3. 还有一点,我也是学R的,我发的论文,数学模型全是用R来做的,之所以没用GAUSS,确实是因为R比较灵活,函数支持比GAUSS要好,其次,免费的。但R不支持网络控件的操做,即使有,也是从网上下载的模块,是发烧友们野路子编写出来的,功能根本不好。而IBM他们的网络控件操作很好,可以直接编写网络搜索的程序以分析网络词频。
     
  4. 我说的是字符群中单词的截取方法,全局遍历 随机遍历 可以用神经网络或遗传算法,你说的是语义的前后连贯判断所采用的方法 ,马尔科夫链、隐马尔科夫链 和 最大熵法,你和我说的根本不是一个东西。
    我曾做过一个程序,就是在一堆文章中,找出“词”来,注意(不用词频表),我用的是神经网络的方法(代替词频表) ,为什么用神经网络的方法?因为我要找出出现频率最高的字符群,那这个字符群有可能是一个人名、公司名或股票名等有意义的东西。我采用的这个方法是抛弃词频表找词的一个创新,所以采用这个方法。遗传算法或全局遍历就是我前面说的for for for 迭代循环,目的也是找出频率最高的字符群(不用词频表)。。。而老大您说的是语义判断、语义连续等方面用的那几个常用模型,并非词频分析。
     
  5. 我刚开是的时候用VB编写词频搜索程序,后来改成了IBM的系统。我当时做的是网络上股票名称出现的词频和股票价格涨跌之间关系的研究。正好当时发论文的源程序还留着,这是我用搜索引擎分析股票名称词频的源程序,里面体现了for for for for for 词频搜索的方法。供大家参考(不好意思,当时是用VB编的)

    Private Sub Command1_Click()
    Dim aa As String
    Open "d:\shdmb.txt" For Input As #1
    Open "d:\shdata.txt" For Output As #2
    '循环开始
    While Not EOF(1)
    Input #1, a$
    daima$ = LTrim$(RTrim$(Mid$(a$, 1, 6)))
    mc$ = LTrim$(RTrim$(Mid$(a$, 8, 16)))
    ame$ = "http://www.baidu.com/s?wd=" + mc$
    aa = Inet1.OpenURL(ame$)


    If aa <> "" Then
    '**********************
    i = 1
    pin = 0
    ddta$ = ""
    binggo$ = ""
    '**********************
    For i = 1 To Len(aa)
    If Mid$(aa, i, 4) = "关网页约" Then
    pin = i + 4
    For j = pin To pin + 20
    If Mid$(aa, j, 1) = "篇" Then
    ddta$ = Mid$(aa, pin, j - pin)
    End If
    Next
    End If
    Next

    '**********************
    num$ = ""
    ipp = 1

    '**********************
    For ipp = 1 To Len(ddta$)
    If Asc(Mid$(ddta$, ipp, 1)) <= 57 And Asc(Mid$(ddta$, ipp, 1)) >= 48 Then
    num$ = num$ + Mid$(ddta$, ipp, 1)
    End If
    Next
    Text2.Text = aa
    Text3.Text = num$
    '要加什么在这加******************************
    Print #2, daima$, mc$, num$
    Text1.Text = mc$
    '要加什么在这加******************************
    Me.Inet1.Cancel
    Else
    Inet1.Cancel
    MsgBox ("网络有问题问题!")
    End If
    Wend
    Close #1
    Close #2


    End Sub

    Private Sub Command2_Click()
    aa = Inet1.OpenURL("http://www.baidu.com/s?wd=深发展")

    Text1.Text = "hello world"
    If aa <> "" Then
    '**********************
    i = 1
    pin = 0
    ddta$ = ""
    binggo$ = ""
    '**********************
    For i = 1 To Len(aa)
    If Mid$(aa, i, 4) = "关网页约" Then
    pin = i + 4
    For j = pin To pin + 20
    If Mid$(aa, j, 1) = "篇" Then
    ddta$ = Mid$(aa, pin, j - pin)
    End If
    Next
    End If
    Next

    '**********************
    num$ = ""
    ipp = 1

    '**********************
    For ipp = 1 To Len(ddta$)
    If Asc(Mid$(ddta$, ipp, 1)) <= 57 And Asc(Mid$(ddta$, ipp, 1)) >= 48 Then
    num$ = num$ + Mid$(ddta$, ipp, 1)
    End If
    Next
    Text2.Text = aa
    Text3.Text = num$
    Me.Inet1.Cancel

    Else
    Inet1.Cancel
    MsgBox ("网络有问题问题!")
    End If
    End Sub
     
  6. 这个程序是我后来发展的网络截词程序的源头, 看过我其他帖子的朋友应该感觉到了,期货价格数据和股票价格数据的截取,也是用的这类方法。但这种方法只能截取固定类型的数据,并不能够自动分析哪些数据是有意义的、是重要的,因此才有了词频分析表,我下载了哈工大的褒义词和贬义词词频表,用这种方法截词和词频表对比,后来发现这个方法不好,因为我需要用到的很多名词,词频表里都没有,当时我才想起开发一种不需要词频表的截词方法,通过查阅了相当多的文献,我发现用神经网路方法可以很好的解决这个问题,这才有了我前面的论述。 另外全局遍历或随机遍历(我所说的遗传)算法也可以很好的截词,但效率慢,需要浪费较多CPU时间。。。。。
     
  7. 词频统计只是文本挖掘的相当初步的东西。真正的文本挖掘不是光词频统计。
    另外,画圈不是用词频统计,你应该知道。你一大段说的都是分词,分词,R+中科院的包,SAS现在效果最好,对于中文。快速搜索算法,google和amazon会有。

    IBM的你说的是cognos还是pasw,pasw前身spss,本身木有对中文支持。
     
  8. 你动不动就给我提熵 第一次见你回贴 你就给我提熵 第二次见你 你第二次提熵。。。。
    如果不是统计两个人同时出现的词频,你到是给我说说如何画圈? 画圈不是在词频统计的基础上?难道是语义?现在人工智能达到这个地步了? 关于你说的版本,我还真没注意过。就是IBM数据库的插件 我程序都跑出来了,你还在问支持不支持中文?
    本来我谈论的中心就是截词和词频,你误解了,把你的熵马理论提出来了,但根本和我说的不是一回事。
     
  9. 那你到是说说你的R画的娱乐圈关系图的数据哪来的? 数据是怎么下来的?
    还有你那个圈圈是怎么画的?
     
  10. 這是數據挖掘最基本的聚類分析好吧?你說的詞頻分析只是自然語言處理下的一個用法。后者是前者的子集。
     
  11. 我当然知道聚类分析了,我问的是聚的是什么? 肯定要对数据进行聚类啊, 高矮胖瘦,长度距离 价格 数量。。聚类聚的不是词频么。
    另外 在圈里的两个人名 划分方式 肯定不是词频的马氏距离或其他距离, 而是两个人名同时出现的频率, 比如 张学友的博客上王菲名字出现的频率,如果比较大,说明这两个人有联系。
     
  12. 如果是单纯的聚类 王菲出现1000次 郭德纲出现900次 曾志伟出现100次 范冰冰出现50次, 安聚类分析, 王菲和郭德纲有关系 曾志伟和范冰冰有关系? 肯定不是这样的啊。。。。。。这统计的应该是两个人名同时出现的频率。
     
  13. 你再琢磨琢磨~~:rolleyes:
     
  14. 我曾看过一篇文章,写的是公司CEO的负面消息对公司收益的影响。
    他是这样研究的。
    首先搜索CEO的人名,但不能直接搜索啊,因为重名情况严重,因此他搜索的是
    公司名称和CEO人名同时出现的情况。
    出现了以后,就对这篇文章中的每一个词(用到了截词)进行褒义词词频表和贬义词词频表进行对比,计算褒贬率。
    计算出来一篇文章后,再找第二篇文章,。。。。。。。。。。
    最终计算总的褒贬率。。。。。在和公司收益回归。
    但我只研究过截词和词频分析,没有更进一步研究。我的研究方向也不在这里。
     
  15. 词频分析相关技术用于交易预测,会不会比简单的回归分析更有优势呢?
     
  16. 文本挖掘对你说的截词有个专门术语:分词。
    另外你应该先把文本挖掘的背景知识先补充一下,这样就能明白我说的什么意思了。自然语言处理NLP方法很多,很多也很成熟。但是光词频统计,太初级了。:p
    IBM数据库的插件的话,还不是收购了的PASW,八成是数据库类的插件,离真正的文本挖掘应用还有距离,是IT人员根据情况开发的。因为数据库在算法上有天然缺陷,IBM的算法人员木这么厉害,他们负责NLP的专家我认识,已经回到SAS了。
     
  17. 我是实用派,够用就行。同样达到目标,有简单的方法为什么不用? 我原来还不用截词这一术语,我用取词,那又怎么了? 分词 取词 截词? 用哪个名称有差异吗? 聚类分析,我说是画圈儿 ,有区别吗? 表述习惯而已。我不是名词范儿,有土话能表达我的思想,我不习惯用术语。。。我可不喜欢一句汉语里冒出几个英语单词,不习惯而已。
     
  18. :)已经定义的术语有助于交流,而且不容易产生歧义。

    你说的画圈,在数据挖掘里面只是数据展现,画圈的方法,有聚类分析,有区别。
    另外,那个示例,用的不是聚类分析。所以我才说先补充一下背景资料比较好沟通。
    还有就是那个示例,只不过是一个小展示,交易层面的应用的话,比那个还要负责深入的多。
    周末快乐!:)