0

私はRapidMinerを初めて使用します...私がしようとしているのは、ProcessDocuments Operator (サブタスク)-> Tokenize を使用してトークン化する 10 個のドキュメントのリストがあることです...結果は、 10 行の10 x 800 のサンプルセットです。 (ドキュメントごとに 1 つ) および 800 の属性 (トークンごとに 1 つ)。

ここで、800 個のトークンを長さでフィルター処理したいと思います。再び ProcessDocuments オペレーター (サブタスク) ->前の ProcessDocuments オペレーターによって生成されたワールドリストで FilterByLength を使用します...結果は 800 x 700 のマトリックスです... 800 個のトークンに対して 800以前の ProcessDocuments Operator と 700 の削減されたトークンのセット。

私が達成したいのは、Kmeans クラスタリング オペレーターに渡すことができる10 x 700 のサンプルセットです。どうやってやるの?

ありがとう

4

2 に答える 2

1

最初の演算子内に「Tokenize」と「Filter Tokens (By Length)」を追加すると、必要なものが得られるため、2 つの「Process Documents」演算子を使用している理由がわかりません。

これについての小さな例を次に示します。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<process version="5.3.005">
  <context>
    <input/>
    <output/>
    <macros/>
  </context>
  <operator activated="true" class="process" compatibility="5.3.005" expanded="true" name="Process">
    <process expanded="true">
      <operator activated="true" class="text:create_document" compatibility="5.3.000" expanded="true" height="60" name="Create Document" width="90" x="45" y="75">
        <parameter key="text" value="This is a test with a looooooooooong word"/>
      </operator>
      <operator activated="true" class="text:create_document" compatibility="5.3.000" expanded="true" height="60" name="Create Document (2)" width="90" x="45" y="165">
        <parameter key="text" value="Again a text which has anoooooooooooooother long word."/>
      </operator>
      <operator activated="true" class="text:process_documents" compatibility="5.3.000" expanded="true" height="112" name="Process Documents" width="90" x="313" y="75">
        <process expanded="true">
          <operator activated="true" class="text:tokenize" compatibility="5.3.000" expanded="true" height="60" name="Tokenize" width="90" x="45" y="30"/>
          <operator activated="true" class="text:filter_by_length" compatibility="5.3.000" expanded="true" height="60" name="Filter Tokens (by Length)" width="90" x="179" y="30">
            <parameter key="max_chars" value="10"/>
          </operator>
          <connect from_port="document" to_op="Tokenize" to_port="document"/>
          <connect from_op="Tokenize" from_port="document" to_op="Filter Tokens (by Length)" to_port="document"/>
          <connect from_op="Filter Tokens (by Length)" from_port="document" to_port="document 1"/>
          <portSpacing port="source_document" spacing="0"/>
          <portSpacing port="sink_document 1" spacing="0"/>
          <portSpacing port="sink_document 2" spacing="0"/>
        </process>
      </operator>
      <operator activated="true" class="k_means" compatibility="5.3.005" expanded="true" height="76" name="Clustering" width="90" x="447" y="75"/>
      <connect from_op="Create Document" from_port="output" to_op="Process Documents" to_port="documents 1"/>
      <connect from_op="Create Document (2)" from_port="output" to_op="Process Documents" to_port="documents 2"/>
      <connect from_op="Process Documents" from_port="example set" to_op="Clustering" to_port="example set"/>
      <connect from_op="Clustering" from_port="cluster model" to_port="result 1"/>
      <portSpacing port="source_input 1" spacing="0"/>
      <portSpacing port="sink_result 1" spacing="0"/>
      <portSpacing port="sink_result 2" spacing="0"/>
    </process>
  </operator>
</process>
于 2013-03-06T09:19:50.680 に答える
0

私はすでに提供された答えに同意する傾向があります。問題は解決したように見えますが、次のようなことができます。

  • WordList to Data 演算子を使用して、800 単語のリストをサンプル セットに変換します。
  • Nominal to Text 演算子を使用して、多項式の単語属性のタイプをテキストに変更します。
  • テキスト属性に対して Process Documents from Data オペレーターを使用し、この中の長さでフィルタリングします。

私はここで漠然と似たものを作りました

700 ワードの制限を制御するのは困難です。長さでソートされた単語のリストが 700 で便利なカットオフを持つ可能性はほとんどないように思えます。

于 2013-04-14T19:42:24.020 に答える