簡體   English   中英

在 R 中使用 TM 包的 VCorpus 時遇到錯誤

[英]Error faced while using TM package's VCorpus in R

我在使用 R 處理 TM 包時遇到以下錯誤。

library("tm")
Loading required package: NLP
Warning messages:
1: package ‘tm’ was built under R version 3.4.2 
2: package ‘NLP’ was built under R version 3.4.1 

corpus <- VCorpus(DataframeSource(data))

錯誤: all(!is.na(match(c("doc_id", "text"), names(x)))) 不是 TRUE

嘗試了各種方法,例如重新安裝軟件包,使用新版本的 R 更新,但錯誤仍然存​​在。 對於相同的數據文件,相同的代碼在具有相同 R 版本的另一個系統上運行。

當我將tm包更新到 0.7-2 版本時,我遇到了同樣的問題。 我查找了DataframeSource()詳細信息,它提到:

第一列必須命名為“doc_id”並包含每個文檔的唯一字符串標識符。 第二列必須命名為“text”。

細節

數據框源將數據框 x 的每一行解釋為一個文檔。 第一列必須命名為“doc_id”並包含每個文檔的唯一字符串標識符。 第二列必須命名為“text”並包含表示文檔內容的“UTF-8”編碼字符串。 可選的附加列用作文檔級元數據。

我用以下代碼解決了它:

df_cmp<- read.csv("test_file.csv",stringsAsFactors = F)

df_title <- data.frame(doc_id=row.names(df_cmp),
                       text=df_cmp$English.title)

您可以嘗試將列名更改為doc_idtext

我在使用BTM包時也遇到了這個錯誤。 正如Eva 所指出的,它可能與您的列標題(必須分別是doc_idtext )有關。 但是,就我而言,這是因為我的doc_id值已損壞並且不再是唯一的。 如果錯誤仍然存​​在,請嘗試檢查您的 doc_id 值以確保它們正確遞增。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM