3

親愛なる Stackoverlow クラウド

qdap 極性関数を使用して、sentiWS に基づいて独自の辞書を読み込んで、いくつかのブログ エントリの極性を計算することができました。現在、単一の単語だけでなく、フレーズも含む新しい感情辞書 ( SePL ) があります。たとえば、「simply good」の場合、「simply」は否定語でも増幅語でもありませんが、より正確になります。それで、qdapの極性機能を使用してngramを検索できるかどうか疑問に思っていました。

例として:

library(qdap)
phrase <- "This is simply the best"
key <- sentiment_frame(c("simply", "best", "simply the best"), "", c(0.1,0.3,0.8))
counts(polarity(phrase, polarity.frame=key))

与えます:

  all wc polarity    pos.words neg.words                text.var
1 all  5    0.179 simply, best         - This is simply the best

ただし、次のような出力を取得したいと思います。

  all wc polarity    pos.words neg.words                text.var
1 all  5    0.76 simply the best         - This is simply the best

誰でもそのように機能させる方法を考えていますか?

万歳、ベン

4

1 に答える 1

2

bag_o_wordこれは、今年初めに機能が変更されて再導入されたバグです。このようなバグが ngram の極性に影響を与えたのは、polar.frame で ngram の使用を有効にしてから 2 回目です: https://github.com/trinker/qdap/issues/185

バグを修正し、単体テストを追加して、このバグがコードに忍び寄らないようにしました。qdap 2.2.1 のコードは目的の出力を提供するようになりましたが、アルゴリズムの本来の意図に対する警告は残っています。

> library(qdap)
> phrase <- "This is simply the best"
> key <- sentiment_frame(c("simply", "best", "simply the best"), "", c(0.1,0.3,0.8))
> counts(polarity(phrase, polarity.frame=key))

  all wc polarity       pos.words neg.words                text.var
1 all  5    0.358 simply the best         - This is simply the best

qdappolarity関数は、このように動作するように設計されていないアルゴリズムを使用しています。次のハックを使用してそれを行うことができますが、関数のアルゴリズムで使用される基本的な理論の意図から外れていることを知っておいてください:

library(qdap)
phrase <- "This is simply the best"

terms <- c("simply", "best", "simply the best")
key <- sentiment_frame(space_fill(terms, terms, sep="xxx"), NULL, c(0.1,0.3,0.8))

counts(polarity(space_fill(phrase, terms, "xxx"), polarity.frame=key))

##   all wc polarity           pos.words neg.words                    text.var
## 1 all  3    0.462 simplyxxxthexxxbest         - This is simplyxxxthexxxbest
于 2014-11-26T21:07:52.343 に答える