2017-11-20 8 views
0

私はパッケージtmを使用しています。DTMのトップフィーチャをId(同じIDを持つ複数のドキュメントが含まれています)から検索します

私は2列のデータフレームを持ち、最初の列はIDで、seocnd列はテキストを含んでいます。データフレームは次のようになります。

Id  Term1 Term2 Term3 Term4 Term5 
13456 Hi Good morning term4 term5 
13457 How are you  term4 term5 
13456 I  Know may  who to 
13456 Hi Good Evening term4 term5 

しかし、必要な出力は次のとおりです:

Id  Term1 Term2 Term3 Term4 Term5 
13456 Hi Good I  morning evening 
13457 How are you term4 term5 

私はTMパッケージを使用してDTMを構築し、各ドキュメントのためのトップ5の単語を抽出し、それがどのように見えるしている

Id  Text 
13456 Hi, Good morning 
13457 How are you? 
13456 May I know who I am speaking to? 
13456 Hi, Good evening 

私はこの上に掲載された以前の質問を見つけることができませんでした。 ありがとうございました。

+0

試してみるために使用した機能を明示的に与えることができますか? – denis

答えて

0

あなたが直面している問題は、データの各行が個別のドキュメントとして扱われるという事実に由来します。したがって、dtmを生成するプロセスにデータを入力する前に、データをaggregateにする必要があります。

ベースRでaggregateを使用する方法の次の例と例を示します。膨大な数のドキュメントがある場合は、たとえばdata.tableというパッケージを使用してより効率的に行うことができます。しかし、簡単にするために、ベースRを使用します(私は自分の模範的なデータを使用しました。次にdputを使用するか、他の人がサンプルデータを読みやすくするためにデータを生成するコードを提供してください)。

df <- data.frame(id = c(1, 1, 2) , text = c("text1.", "text2.", "text3.")) 
# id text 
# 1 1 text1. 
# 2 1 text2. 
# 3 2 text3. 
df <- aggregate(df$text, by = list(df$id), FUN = function(x) paste(x, collapse = " ")) 
# Group.1   x 
# 1  1 text1. text2. 
# 2  2  text3. 
colnames(df) <- c("id", "text") 
関連する問題