列中文本的字数统计

Word count for text in column

我有一个数据集,其中有一列包含如下文本

    Column1
    ----------------------------------------------------------
    dapagliflozin 10 MG / metFORMIN hydrochloride 
    dapagliflozin 5 MG / metFORMIN hydrochloride  
    Fortamet       
    Glucophage      
    Glumetza      
    metFORMIN hydrochloride      
    metFORMIN hydrochloride  / pioglitazone 15 MG     
    metFORMIN hydrochloride  / pioglitazone 30 MG      

我正在尝试获取每个唯一单词的字数,例如,metFormin 的字数、hydrochloride 的字数等。我需要帮助;我尝试了 table 函数,但它使用整行作为一个词,这没有帮助。

我们可以使用strsplit/unlist/table的组合。使用 strsplit 拆分列字符串,将 split 指定为 space (\s+)。输出将是 list。使用 unlist 将列表更改为矢量,然后使用 table 获取计数。

 table(unlist(strsplit(yourdf$Column1, '\s+'))

或者使用为此设计的文本分析包:

> require(quanteda)
> dfm(myColumn)
Creating a dfm from a character vector ...
   ... lowercasing
   ... tokenizing
   ... indexing 1 document
   ... shaping tokens into data.table, found 21 total tokens
   ... summing tokens by document
   ... indexing 8 feature types
   ... building sparse matrix
   ... created a 1 x 8 sparse dfm
   ... complete. Elapsed time: 0.047 seconds.
Document-feature matrix of: 1 document, 8 features.
1 x 8 sparse Matrix of class "dfmSparse"
       features
docs    dapagliflozin fortamet glucophage glumetza hydrochloride metformin mg pioglitazone
  text1             2        1          1        1             5         5  4            2