美文网首页
R语言机器学习与临床预测模型65--文本挖掘

R语言机器学习与临床预测模型65--文本挖掘

作者: 科研私家菜 | 来源:发表于2022-07-11 16:11 被阅读0次

    R小盐准备介绍R语言机器学习与预测模型的学习笔记, 快来收藏关注【科研私家菜】


    01 语义分析

    以及从语言学的角度对词语进行标记,比如名词、动词、代词、形容词、副词、介词、单数、复数等。一般来讲,只研究词频和文本隐含主题就足够了。但是,有些时候你会发现需要对文本风格理解得更深入一些,以便对演讲者和写作者进行比较。
    有很多方法可以完成这一任务,但我们只集中讨论下面5种:
     极性分析(情感分析)
     自动易读性指数(复杂度)
     正式度
     多样性
     分散度
    极性分析通常称为情感分析,它可以告诉你文本的情感有多么积极或者多么消极。R使用qdap包进行极性分析,它为每个句子分配一个评分。你可以对不同作者、文本或主题进行分组,以分析极性均值或标准差。有很多极性词典可供使用, qdap包中默认使用的词典是由Hu与Liu在2004年建立的。你可以根据自己的需要替换或改变这个词典。算法首先对词语进行标记,每个词都根据词典标为“积极”“消极”或“中性”的情感标记。
    标记后的词与它前4个词和后2个词一起,被聚集成词簇。词簇用效价转换器( valence shifter,中性器neutral、否定器negator、放大器amplifier、负放大器de-amplifier)进行标记。根据词和词簇的数量与位置,为其赋予一系列权重,然后将权重相加,再除以句子中词的数量的平方根。
    自动易读性指数是衡量文本复杂度和读者理解能力的一个指标。可以用一个专门的公式计算数: 4.71(字符数/词数) + 0.5(词数/句子数) -21.43。
    这个指数会生成一个数值,通过这个数值可以估计出能完全理解文本的学生年级。如果这个
    数值是9,那么一个年龄为13~15岁的学生应该能够理解文本意义。
    正式度可以表示文本和读者之间或者演讲者与听众之间的相关程度。我认为,它是表示文本
    作者与读者之间适合程度的一种方式,或者是对作者与读者交流环境的一种设定。如果你想体验
    正式的文本,那么去参加医学会议或阅读法律文件吧。非正式文本天然地要受到语境的影响


    02 tm包的文本挖掘 自然语言处理

    # Natural Language Processing
    # # 
    # install.packages('tm')
    # install.packages('twitteR')
    # install.packages('wordcloud')
    # install.packages('RColorBrewer')
    # install.packages('e1017')
    # install.packages('curl')
    
    
    install.packages(c("devtools", "rjson", "bit64", "httr"))
    
    library(twitteR)
    library(tm)
    library(wordcloud)
    library(RColorBrewer)
    #Connect to twitter 
    
    ##authentication
    setup_twitter_oauth(ckey, skey,token,sectoken)
    ##returning tweets
    soccer.tweets <- searchTwitter("Modi",n=1000,lang="en")
    ### Grabing Text from tweets
    soccer.text <- sapply(soccer.tweets,function(x) x$getText())
    
    
    #####cleam=n the data
    soccer.text <- iconv(soccer.text, 'UTF-8', 'ASCII') # remove emoticons
    soccer.corpus <- Corpus(VectorSource(soccer.text)) # create a corpus
    
    # Create a Document Term Matrix
    # We'll apply some transformations using the TermDocumentMatrix Function
    
    term.doc.matrix <- TermDocumentMatrix(soccer.corpus,
          control = list(removePunctuation = TRUE,stopwords = c("Modi","http", stopwords("english")),
          removeNumbers = TRUE,tolower = TRUE))
    
    # converting object into matrix
    term.doc.matrix <- as.matrix(term.doc.matrix)
    
    # getting word count
    word.freqs <- sort(rowSums(term.doc.matrix), decreasing=TRUE) 
    dm <- data.frame(word=names(word.freqs), freq=word.freqs)
    
    # Creating wordcloud
    
    wordcloud(dm$word, dm$freq, random.order=FALSE, colors=brewer.pal(8, "Dark2"))
    

    03 jiebaR

    细胞词库转换可以使用 cidian 包 :https://github.com/qinwf/cidian/
    jiebaR 中文分词文档 (qinwenfeng.com)

    
    install.packages("jiebaR")
    新建一个分词器
    
    library(jiebaR)
    分词器 = worker() 
    然后就是分词了,
    
    segment("我是一段文本", 分词器)
    #> [1] "我"   "是"   "一段" "文本"
    就是这么简单!
    

    关注R小盐,关注科研私家菜(VX_GZH: SciPrivate),有问题请联系R小盐。让我们一起来学习 R语言机器学习与临床预测模型

    相关文章

      网友评论

          本文标题:R语言机器学习与临床预测模型65--文本挖掘

          本文链接:https://www.haomeiwen.com/subject/rowxmrtx.html