テキストマイニング:特定の単語を見つけて、その両側の単語を取得します<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />手動で入力したコメントのテキストをマイニングしようとしています。 ありがたいことに、多少のパターンがあります。 最初の10語のうち、「to」という単語が表示された場合、「to」の両側の単語が必要な単語です。
Words[Comments]という式を使用してExpression列を作成するという小さな一歩を踏み出しました。 コメント列から単語のリストが返されました-かなりクールです。
では、最初の10語で「to」が発生するかどうかを確認し、発生する場合は、「to」の両側の単語を取得するには、次に何をしますか?
Re:テキストマイニング:特定の単語を見つけて、その両側の単語を取得しますありがとうございます! 返信が遅くなってすみません-締めくくった年次総会のテキストマイニングを行うのに忙しかったです。
それで、私は本当にエレガントなことをする時間があまりなかったので、ジェフの公式アプローチを使用しました。 今、私は正規表現を学ぶ時間があります。 来年すぐに実行できるように、この分析用のスクリプトソリューションを開発します。
データのクリーンアップ/情報の抽出は、この作業の厄介な部分でした。 式は私が探していたものを見つけるのに役立ちました。 しかし、私はまだコラムで多くの仕事をしなければなりませんでした>再コーディングします。 JMP12でそれを非常に強力にした人々に敬意を表します!
ところで、テキストマイニングは優れたマスタリングJMPウェビナーになります。
Re:テキストマイニング:特定の単語を見つけて、その両側の単語を取得します一度言ったら百万回言った。テキストマイニングをいくらでも行う場合は、正規表現の学習に1時間費やす価値があります。たくさんの素晴らしいYouTubeビデオがあり、スクリプトガイドにはそれらに関する非常に優れたセクションもあります。
文章= 「質問のテキスト例」 ;
answer1 =正規表現((文章、 「(\ w +)から(\ w +)」 、 "\ 1" )。 ;
answer2 =正規表現((文章、 「(\ w +)から(\ w +)」 、 「\2」 )。 ;
答え=正規表現((文章、 「(\ w +)から(\ w +)」 、 "\ 1" || "、" || 「\2」 )。 ;
印刷(( answer1 )。 ;
印刷(( answer2 )。 ;
印刷((答え)。 ;
出力:
"文章"
「その」
「テキスト、」
Re:テキストマイニング:特定の単語を見つけて、その両側の単語を取得しますIan @ JMP素晴らしいスクリプト例があります。
列の数式で実行する場合は、次のようになります。

この式は、ローカル変数「to」の位置を保持します。
この式の列を含むデータテーブルを添付して、どのように機能するかを示しました。
注意:「to」が位置10に表示されている場合は、単語9と11が表示されます。 それが必要なものでない場合は、If()内に条件を追加する必要があります。
Re:テキストマイニング:特定の単語を見つけて、その両側の単語を取得しますあまり派手にならずに、多分このようなもの? 最後の「単語」は「to」であるため、2番目の単語は「{}」を返します。 'から'ではありません。 ただし、必要に応じて、その周りをコーディングすることもできます。
NamesDefaultToHere (( 1 )。 ;
wordsThatBracketTo =
関数({ str } 、 {{デフォルトのローカル} 、
strWords =言葉(( str )。 ;
toPos = Loc (( strWords 、 "に" )。 ;
requiredWords = {} ;
もしも(( toPos <= 10 、
もしも(( toPos >> 1 、 InsertInto (( requiredWords 、 strWords [ toPos - 1 ])) ;
もしも(( toPos < NItems (( strWords )。 、 InsertInto (( requiredWords 、 strWords [ toPos + 1 ])) ;
)。 ;
EvalList (( requiredWords )。 ;
)。 ;
サンプルテキスト= 「これは、何度も含まれていないフレーズです。」 ;
印刷(( wordsThatBracketTo ((サンプルテキスト)) ;
サンプルテキスト= 「これはtoを含むフレーズです。」 ;
印刷(( wordsThatBracketTo ((サンプルテキスト)) ;