質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Q&A

解決済

1回答

747閲覧

R 形態素解析 ネガ・ポジ分析

Gtyoko

総合スコア5

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

0グッド

0クリップ

投稿2019/12/29 06:57

編集2019/12/29 06:58

前提・実現したいこと

元々入力していた文字列データを形態素解析し、
ネガティブ・ポジティブ度数を表示する

発生している問題・エラーメッセージ

エラー: by required, because the data sources have no common variables
Run rlang::last_error() to see where the error occurred.
22.
stop(fallback)
21.
signal_abort(cnd)
20.
.abort(text)
19.
glubort(fmt_args(args), ..., .envir = .envir)
18.
bad_args("by", "required, because the data sources have no common variables")
17.
common_by.NULL(by, x, y)
16.
common_by(by, x, y)
15.
left_join.tbl_df(tbl_df(x), y, by = by, copy = copy, ...)
14.
left_join(tbl_df(x), y, by = by, copy = copy, ...)
13.
as.data.frame(left_join(tbl_df(x), y, by = by, copy = copy, ...))
12.
left_join.data.frame(., dic2)

該当のソースコード

write.table(result,"temp.txt",quote=F,row.names=F,col.names=F,append=F)
result.docdf <- docDF("temp.txt", pos = c("名詞","形容詞"))
result.docdf %<>% dplyr::rename(FREQ = temp.txt) %>% arrange(FREQ)

dic <- read.csv("C:/Users/owner/単語感情極性対応表_日本語版.dic", sep=":",stringsAsFactors=FALSE, header=FALSE)
dic2 <- dic %>% select(V1, V4) %>% rename(TERM=V1, NP=V4)
dic2 %<>% distinct(TERM, .keep_all=TRUE)

result.docdf2 <- result.docdf %>% left_join(dic2)
posi <- sum(result.docdf2$FREQ[result.docdf2$NP > 0], na.rm=TRUE)
nega <- sum(result.docdf2$FREQ[result.docdf2$NP < 0], na.rm=TRUE)

補足情報(FW/ツールのバージョンなど)

resultのclassはcharacterのリストで、
辞書データは
優れる:すぐれる:動詞:1
良い:よい:形容詞:0.999995
喜ぶ:よろこぶ:動詞:0.999979.....
のような形式になっております。

R初心者のため全く勝手が分らず暗中模索しているところです・・

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

まず、次のことをやってください。

エラーが出て止まった直後に、

traceback()

で、エラーが出た箇所を特定します。

そこで使われている関数がどういう入力を要求しているのかヘルプで確認します。
それに照らし合わせて、その箇所で使われているオブジェクトが正しい形をしているか確認します(データフレームが要求されているのに単なるベクトルとかになっていないか、空ではいけないオブジェクトのサイズが0だったりしないかなど)。

また、エラーメッセージをまるごと検索窓に突っ込んでググり、エラーの発生原因や対処法を調べます。

投稿2019/12/29 07:23

KojiDoi

総合スコア13669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Gtyoko

2019/12/29 10:34

エラーの元を辿ってみたところ、MeCab(?)で解析する際文字化けが発生していたみたいです・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問