###前提・実現したいこと
rubyを用いてtweetの本文抽出を行っています。
###発生している問題・エラーメッセージ
その際に、タグとして付与されている@***やhttp://***等は正規表現で削除できたものの、ハッシュタグである#***の処理がうまくいきません。
おそらく、rubyのコメントアウトが#を使うものであり、
ソースコード上で、コメントアウトとして機能していると考えます。
そこで'#'や'#'を試してみました。
すると、正規表現クラスgsub()では変換されないものの、文字列比較クラスmatch()では検出できました。
そのため、検出できていないわけではないようなのです。
しかし、gsub()関数では変換できなく終わっています。
この点でどうしたらよいかわからなくなりました。
また、検索しても正規表現で#を処理するものは出てこなかったためここで質問させてもらいました
ご検討のほど宜しくお願いします。
###該当のソースコード
【環境】ruby 2.4.1p111 【ソースコード】 # -*- coding: utf-8 -*- #mecabバインディング require 'natto' #Tweetファイル参照 tweet_file = File.open("./../data/tweet_mini.txt","r") #形態素解析 natto = Natto::MeCab.new tweet_file.each_line {|tweet_line| p tweet_line.split("\t")[3] #文章部分を対象 tweet = tweet_line.split("\t")[3] tweet = tweet.gsub(/@.* /, "") tweet = tweet.gsub(/#.*/, "") tweet = tweet.gsub(/ http:.*/, "") p tweet p tweet.match('\#') } 【実行結果】 "#tabi " "#tabi " #<MatchData "#"> "#" "#" #<MatchData "#">
回答2件
あなたの回答
tips
プレビュー