Q&A
前提
ユーザが文を入力した際にそれをMeCabにかけ,
その中から名詞と形容詞であるものを抽出し,それをTweepyより
ツイートを取得し,それらをまたMeCabにかけようとしていますが
Type errorになってしまいます.
例)
ユーザ:おにぎりを買う
↓
MeCab:おにぎり を 買う
↓
おにぎり
↓
Tweepy:おにぎりに関するツイートを取得
↓
おにぎりはおいしい
↓
MeCab: おにぎり は おいしい
というような感じです.
実現したいこと
上記の例のようにしたいです.
発生している問題・エラーメッセージ
TypeError at /hello/tw_an in method 'Tagger_parseToNode', argument 2 of type 'char const *' Request Method: GET Request URL: http://127.0.0.1:8000/hello/tw_an Django Version: 4.1.4 Exception Type: TypeError Exception Value: in method 'Tagger_parseToNode', argument 2 of type 'char const *'
該当のソースコード
python
1def tw_an(request): 2 idea1 = IdeaModel.objects.filter(paper=1, section=1).first().idea1 3 #モデルに保存されているレコードを取得しています 4 5 tagger = MeCab.Tagger() 6 node = tagger.parseToNode(idea1) 7 words = [] 8 hinshis = [] 9 10 while node: 11 word = node.surface 12 hinshi = node.feature.split(",")[0] 13 if hinshi == "名詞" or hinshi == "形容詞": 14 words.append(word) 15 hinshis.append(hinshi) 16 node = node.next 17 18 # Twitterの認証 19 省略 20 21 # 検索条件の設定 22 search_word = words 23 24 # 何件のツイートを取得するか 25 item_number = 1 26 27 # 検索条件を元にツイートを抽出 28 tweets = tweepy.Cursor(api.search_tweets, q=search_word, tweet_mode='extended', result_type="mixed", lang='ja').items(item_number) 29 30 # 抽出したデータから必要な情報を取り出す 31 # 取得したツイートを一つずつ取り出して必要な情報をtweet_dataに格納する 32 tw_data = [] 33 34 for tweet in tweets: 35 # tweet_dataの配列に取得したい情報を入れていく 36 tw_data.append([ 37 tweet.full_text, 38 ]) 39 40 41 for data in tw_data: 42 tagger = MeCab.Tagger() 43 tw_node = tagger.parseToNode(data) 44 tw_words = [] 45 tw_hinshis = [] 46 47 while tw_node: 48 tw_word = node.surface 49 tw_hinshi = node.feature.split(",")[0] 50 if tw_hinshi == "名詞" or tw_hinshi == "形容詞": 51 tw_words.append(tw_word) 52 tw_hinshis.append(tw_hinshi) 53 tw_node = node.next 54 55 56 params = { 57 'title': 'Hello', 58 'word': words, 59 'data': idea1, 60 'result': tw_data, 61 } 62 return render(request, 'hello/tw_an.html', params)
試したこと
取得してきたツイートがMeCabにかけられないのかと思い,
文字型にしようとしたりしましたが無理でした.
補足情報(FW/ツールのバージョンなど)
django 4.1.4
python
mecab 0.996.3
tweepy3.10.8
回答1件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/01/21 01:56