- このトピックには1件の返信、2人の参加者があり、最後にRobertMexにより3年、 7ヶ月前に更新されました。
-
投稿者投稿
-
2018年12月13日 12:07 PM #1542Nakazonoゲスト
関数の確認を行っていたところ、docMatrixDFで、idf2とidf3の場合の処理が同じであることが分かりました。
【問題の箇所(docMatrixDF)】
#下から17行目
else if (argW[i] == “idf3”) {
dtm <- dtm * globalIDF2(dtm)【全文(docMatrixDF)】
> docMatrixDF
function (charVec = c(“MeCab”, “CaBoCha”), pos = “Default”, minFreq = 1,
weight = “no”, co = 0, dic = “”, mecabrc = “”, etc = “”)
{
charLeng <- length(charVec)
if (charLeng < 1) {
stop(“character vector must be specified.”)
}
if (any(pos == “” | is.na(pos))) {
stop(“specify pos argument!”)
}
if (length(pos) == 1 && pos == “Default”) {
posN <- 0
}
else {
posN <- length(pos)
}
if (is.null(dic) || is.na(dic)) {
dic = “”
}
else if ((xl <- nchar(dic)) > 0) {
dic <- paste(dirname(dic), basename(dic), sep = “/”)
if (!(file.exists(dic))) {
cat(“specified dictionary file not found; result by default dictionary.\n”)
dic = “”
}
else {
dic <- paste(” -u”, dic)
}
}
if (is.null(mecabrc) || is.na(mecabrc) || (nchar(mecabrc)) <
2) {
mecabrc = “”
}
else {
mecabrc <- paste(dirname(mecabrc), basename(mecabrc),
sep = “/”)
if (!(file.exists(mecabrc))) {
cat(“specified mecabrc not found; result by default mecabrc.\n”)
mecabrc = “”
}
else {
mecabrc <- paste(“-r”, mecabrc)
}
}
opt <- paste(dic, mecabrc, etc)
if (minFreq < 1) {
stop(“minFreq > 0 must be specified.”)
}
dtm <- .Call(“docMatrixDF”, as.character(charVec), as.numeric(charLeng),
pos, as.numeric(posN), as.numeric(minFreq), as.character(opt),
PACKAGE = “RMeCab”)
if (is.null(dtm)) {
stop(“give less number to minFreq!”)
}
dtm <- t(dtm)
if (co == 1 || co == 2 || co == 3) {
dtm <- coOccurrence(removeInfo(dtm), co)
}
if (weight == “”) {
}
argW <- unlist(strsplit(weight, “*”, fixed = T))
for (i in 1:length(argW)) {
if (argW[i] == “no”) {
invisible(dtm)
break
}
else if (argW[i] == “tf”) {
dtm <- localTF(dtm)
}
else if (argW[i] == “tf2”) {
dtm <- localLogTF(dtm)
}
else if (argW[i] == “tf3”) {
dtm <- localBin(dtm)
}
else if (argW[i] == “idf”) {
dtm <- dtm * globalIDF(dtm)
}
else if (argW[i] == “idf2”) {
dtm <- dtm * globalIDF2(dtm)
}
else if (argW[i] == “idf3”) {
dtm <- dtm * globalIDF2(dtm)
}
else if (argW[i] == “idf4”) {
dtm <- dtm * globalEntropy(dtm)
}
else if (argW[i] == “norm”) {
dtm <- t(t(dtm) * mynorm(dtm))
}
}
if (any(is.na(dtm))) {
cat(“Warning! Term document matrix includes NA!”, “\n”)
}
invisible(dtm)
}
<bytecode: 0x00000000179c64b8>
<environment: namespace:RMeCab>また、globalIDF3もないわけではなく、定義されているようでした。
(実行して確認はしておりません)
ほかにも、docMatrix()やdocMatrix2()で同じことを確認しています。報告のような形ではありますが、解決できるインストール方法等
ございましたら解答よろしくお願いします。【sessionInfo()の結果】
> sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)Matrix products: default
locale:
[1] LC_COLLATE=Japanese_Japan.932 LC_CTYPE=Japanese_Japan.932
[3] LC_MONETARY=Japanese_Japan.932 LC_NUMERIC=C
[5] LC_TIME=Japanese_Japan.932attached base packages:
[1] stats graphics grDevices utils datasets methods baseother attached packages:
[1] DBI_1.0.0 xlsx_0.6.1 stringi_1.1.7 stringr_1.3.1 dplyr_0.7.6
[6] magrittr_1.5 RMeCab_1.00loaded via a namespace (and not attached):
[1] Rcpp_0.12.18 xlsxjars_0.6.1 crayon_1.3.4 assertthat_0.2.0
[5] R6_2.2.2 pillar_1.3.0 rlang_0.2.1 rstudioapi_0.8
[9] bindrcpp_0.2.2 tools_3.5.1 glue_1.3.0 purrr_0.2.5
[13] yaml_2.2.0 compiler_3.5.1 pkgconfig_2.0.1 rJava_0.9-10
[17] tidyselect_0.2.4 bindr_0.1.1 tibble_1.4.22018年12月30日 12:48 PM #1564 -
投稿者投稿
- フォーラム「RMeCab」には新規投稿および返信を追加できません。