2017-04-27 1 views
0

トピックモデルをcsv形式のtwitterデータで実行したいと思います。私はデータをjupyterにロードしました。トピックpythonでのtwitterデータのモデリング

# Import pandas as pd 
    import pandas as pd 
    # Load the dataset 
    tweet_data = pd.read_csv("C://Users/shivam/Desktop/USA_TWEETS .csv", sep='\t', names = ["Date", "ID", "Place", "Text", "Username"]) 
    tweet_data_df = pd.DataFrame(tweet_data) 

ここでトピックモデリングを適用します。テキスト変数にどうすれば前進するのですか?あなたのコードの

# let us now, store the text variable of the data-frame in another object 
    tweets = tweet_data.Text 

てください提案が、私はこのような何かをしようとしています

トピックモデリングのこの概念では新しいですが、持っエラー - 例外TypeError:期待される文字列またはバイトのようなオブジェクト

from sklearn.feature_extraction.text import CountVectorizer, 
    TfidfVectorizer 
    from sklearn.decomposition import LatentDirichletAllocation 

    import pandas as pd 
    import nltk 
    from nltk.corpus import stopwords 
    from nltk.tokenize import word_tokenize 
    from nltk.stem import PorterStemmer 



    stemmer = PorterStemmer() 

    extracted_data = [] 


    for x in range(0, len(data)-1): 
     for word in word_tokenize(text_data.tolist()[x]): 
     extracted_data.append(word) 

    print(extracted_data) 

また、トピックモデリングを最初から適用するための他のコードもお役立てください。前もって感謝します。

DATASET: https://drive.google.com/open?id=0B5i9wCO1uYC9aV9fVHg4dHVidjQ

+0

を – DJanssens

答えて

0

私が使用lda package言うと思います。 scikit-learnパッケージは、次元削減には便利ですが、トピックワードやドキュメントトピックの配布にはあまり便利ではありません。

コードはhereからコピーされた以下のようなものです。

>>> import numpy as np 
>>> import lda 
>>> import lda.datasets 
>>> X = lda.datasets.load_reuters() 
>>> vocab = lda.datasets.load_reuters_vocab() 
>>> titles = lda.datasets.load_reuters_titles() 
>>> X.shape 
(395, 4258) 
>>> X.sum() 
84010 
>>> model = lda.LDA(n_topics=20, n_iter=1500, random_state=1) 
>>> model.fit(X) # model.fit_transform(X) is also available 
>>> topic_word = model.topic_word_ # model.components_ also works 
>>> n_top_words = 8 
>>> for i, topic_dist in enumerate(topic_word): 
...  topic_words = np.array(vocab)[np.argsort(topic_dist)][:-(n_top_words+1):-1] 
...  print('Topic {}: {}'.format(i, ' '.join(topic_words))) 

彼らが何であるかを確認するために、どのようにあなたがあなた自身のデータセットの上にそれらを構築することができ、変数X、単語とタイトルを探ります。 n_doc X n_vocab行列を構築するには、scikit-learnのvectorizerを使用できます。

0

このエラーが発生する理由は、クラシファイアに渡す文字列が必要なためです。

この使用:http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.LatentDirichletAllocation.html見てみる考えてみましょう

tweet = " ".join(tweet) 
関連する問題