PythonとMeCabでツイート中の単語を抽出し、tf-idfのスコア毎に並べ替えようとしたところ、同じ文に同じランキングが複数かつ不規則に出現してしまいます。
原因の特定、解決策の提示をしていただけますと助かります。宜しくお願いします。
出力結果
txt
1[['ていいん' 'すべて' '高校生' 'ゲーム' 'adhd' 'crest' 'いずれ' 'いちばん' 'おかげ' 'さきがけ']] 2[['高校生' 'ゲーム' 'adhd' 'crest' 'いずれ' 'いちばん' 'おかげ' 'さきがけ' 'すべて' 'ていいん']] 3[['ところ' 'コミュ力' '東京大学' 'ダセェ' 'ロジカル' 'クソキメェ' '社会的' 'いちばん' 'おかげ' 'まとも']] 4[['高校生' 'ゲーム' 'adhd' 'crest' 'いずれ' 'いちばん' 'おかげ' 'さきがけ' 'すべて' 'ていいん']] 5[['自転車' 'バイク' '高校生' 'すべて' 'ひまわり畑' 'にきび' 'どなた' 'ところ' 'ていいん' 'さきがけ']] 6[['高校生' 'ゲーム' 'adhd' 'crest' 'いずれ' 'いちばん' 'おかげ' 'さきがけ' 'すべて' 'ていいん']] 7[['メディア' 'どなた' '高校生' 'ていいん' 'まとも' 'ひまわり畑' 'にきび' 'ところ' 'すべて' 'ゲーム']] 8[['高校生' 'ゲーム' 'adhd' 'crest' 'いずれ' 'いちばん' 'おかげ' 'さきがけ' 'すべて' 'ていいん']] 9[['高校生' '吹奏楽コンクール' 'おかげ' 'まとも' 'ひまわり畑' 'にきび' 'どなた' 'ところ' 'ていいん' 'すべて']] 10[['高校生' 'ゲーム' 'adhd' 'crest' 'いずれ' 'いちばん' 'おかげ' 'さきがけ' 'すべて' 'ていいん']] 11[['平谷村役場' 'まとも' 'ひまわり畑' 'いちばん' 'すべて' 'にきび' 'どなた' 'ところ' 'ていいん' '高校生']] 12[['高校生' 'ゲーム' 'adhd' 'crest' 'いずれ' 'いちばん' 'おかげ' 'さきがけ' 'すべて' 'ていいん']] 13[['にきび' '終息宣言' '立て続け' '高校生' 'すべて' 'ひまわり畑' 'どなた' 'ところ' 'ていいん' 'おかげ']] 14[['高校生' 'ゲーム' 'adhd' 'crest' 'いずれ' 'いちばん' 'おかげ' 'さきがけ' 'すべて' 'ていいん']] 15[['ゲーム' '先延ばし' 'adhd' '調べ物' 'まとも' 'ひまわり畑' 'にきび' 'どなた' 'ところ' '高校生']] 16[['高校生' 'ゲーム' 'adhd' 'crest' 'いずれ' 'いちばん' 'おかげ' 'さきがけ' 'すべて' 'ていいん']] 17[['act' 'いずれ' 'プレゼン' '本当にありがとうございました' 'さきがけ' 'crest' 'すべて' 'いちばん' 'おかげ' 18 'クソキメェ']] 19[['高校生' 'ゲーム' 'adhd' 'crest' 'いずれ' 'いちばん' 'おかげ' 'さきがけ' 'すべて' 'ていいん']]
該当のソースコード
python
1from natto import MeCab 2import codecs 3import sys 4import re 5from sklearn.feature_extraction.text import TfidfVectorizer 6import glob 7import numpy as np 8 9with codecs.open("test28.txt", "r", "utf-8") as f: 10 corpus = f.read().split("\n") 11 12mecab = MeCab('-d /usr/local/lib/mecab/dic/mecab-ipadic-neologd') 13 14#if tagger.lang == 'ja': 15 16rm_list = ["RT","https","co","さん","フォロー","本日","応募","今日","プレゼント","お金","FGO","無料","本人","投稿","動画","ツイート","リツイート","Twitter","ローソン","Peing","http","Amazonギフト券","bot","発売中","Youtube","www","WWW","質問箱","コラボ","フォロワー","DM","いいね","RT","lawson","://","!","peing","youtube","抽選","jp","リプ","キャンペーン","チケット","期間限定","DHC","日本","amp","人間","チャンネル","配信中","YouTube","WEB","楽しみ","イラスト","くじ","@","__"] 17 18docs = [] 19for txt in corpus: 20 words = mecab.parse(txt, as_nodes=True) 21 doc = [] 22 23 for w in words: 24 if w.feature.split(",")[0] == "名詞": 25 if len(w.surface) >= 3: 26 if not any(rm in w.surface for rm in rm_list): 27 doc.append(str(w.surface)) 28 29 doc = ' '.join(doc) 30 docs.append(doc) 31corpus = docs 32 33vectorizer = TfidfVectorizer() 34tfidf = vectorizer.fit_transform(corpus) 35 36#スコアの表示 37print(tfidf.toarray()) 38# テキストの数、出現した単語の数 39print(tfidf.shape) 40 41#並べ替え 42feature_names = np.array(vectorizer.get_feature_names()) 43for vec in tfidf: 44 index = np.argsort(vec.toarray(), axis=1)[:,::-1] 45 feature_words = feature_names[index] 46 #print(corpus) 47 print(feature_words[:,:10])
テキスト
txt
1吉本からすりゃ自分達が悪者になればいいだけの話だし、社長や会長が退任するわけでもないのがすべて。自分達が悪者になったことで目論通り宮迫に同情が集まり嘘が薄れて辞めなくていいんだよという風潮になった。 2 3東京大学のクソキメェところ、服がダセェとかコミュ力が死んでるとかそんなことじゃなくて、ロジカルな正しさが社会的に実装されることが善でありそうした社会が万人にとって暮らしやすく美しいと思ってそうな人間がウヨウヨいるところだろ 4 5自転車やバイクで世界を回っている男性が必死で追いかけてくる子猫と出会い、彼の旅を変えたおはなし 6 7なんで官邸でこんなことやってるのか、どなたかちゃんとつっこんだ報道はありますか?おかしいですよこんなの。他の議員の結婚でいちいちこんなことやってますか。メディアはおかしなことに加担しないでほしい 8 9京都吹奏楽コンクール高校生小編成の部で金賞をとることができました!ここまで支えてくださった方々のおかげです沢山の応援ありがとうござました 10 11今年も平谷村役場裏のひまわり畑で撮影しました。撮影した殆どの写真が変顔の自分。いちばんまともな顔の写真を。どこにいるかわかりにくいですが 12 13先々月中旬から大きなにきびが立て続けに4つも右ほほにできたけど、それが大分薄くなると同時に新規のにきびが出てこない。これは、年齢によるにきび終息宣言でいいのかな 14 15ADHDの人間は、「入って後悔した事はない」と分かっているにも関わらず風呂に入るのを先延ばししてしまう1方で、「やれば必ず後悔する」と分かっているにも関わらず予定までの少し空いた時間にTwitter/読書/調べ物/ゲームをやり始めてしまうというバグがあるな。 16 17本日で、CREST, さきがけ, ACT-X、すべての募集領域の面接選考会を無事に終了しました。いずれの日も都内は大変暑く、お越しいただいた方は面接前の緊張などと相まって、大変だったかと思います。そんな中、たくさんのわくわくするような提案プレゼンを、本当にありがとうございました。
補足情報(FW/ツールのバージョンなど)
iOS 10.12.6, Python 3.7.3, Atom

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/19 01:07