0

R の「lda」パッケージを使用して、コーパスのトピック モデル分析を実行しています (「corpusB」と呼びましょう)。最初にコマンド「lexicalize」を使用して、分析用のコーパスを準備しています。このコマンドは、用語とドキュメントのマトリックスを返し、事前に指定されていない場合は、コーパスに現れる一意のトークンを含む語彙を返します。

研究目的で、別のコーパスから推測された語彙 (「corpusA」と呼びましょう) を使用してコーパスを語彙化したいのですが、これは簡単に実行できるはずです。しかし、それは機能していません。コードのサンプルを次に示します。

A <- lexicalize(corpusA) #the output of this command is just as expected
B <- lexicalize(corpusB, vocab = corpusA$vocab)

B$documents #let's see the term-document matrix
>>NULL #this is what I get

なぜnullの結果が得られるのか考えていますか? 奇妙なことに、インポートされたコーパスではなく単純な文字ベクトルを使用している場合、コマンドは問題なく機能します。

A <- c("I have the very model of a modern major general")
B <- c("I have a major headache")

B1 <- lexicalize(B)
B1

$documents
$documents[[1]]
     [,1] [,2] [,3] [,4] [,5]
[1,]    0    1    2    3    4
[2,]    1    1    1    1    1


$vocab
[1] "i"        "have"     "a"        "major"    "headache"


A1 <- lexicalize(A, vocab = B1$vocab)
A1
[[1]]
     [,1] [,2] [,3] [,4]
[1,]    0    1    2    3
[2,]    1    1    1    1

役に立つかもしれないいくつかの情報:

1) 私が興味を持っているコーパス (corpusB) には 700MB のテキストが含まれており、かなりの量のデータです。

2) 両方のコーパス (B と A) は、'tm' パッケージを使用して R にインポートされます。語彙化の前に、'tm' を使用して句読点、数字、ストップワードを削除し、空白と小文字を取り除きます。

どんな助けでも大歓迎です!

4

1 に答える 1