2013-03-04 2 views
0

Я новичок в RapidMiner ... Я пытаюсь сделать так, что у меня есть список из 10 Документов, которые я токенизую с помощью ProcessDocuments Operator (subtask) -> Tokenize ... результат a 10 на 800 примеры с 10 строками (по одному для каждого документа) и 800 атрибутами (по одному для каждого токена).RapidMiner Несколько фильтров в последовательности

Теперь я хочу filterbylength на 800 фишек, я снова использовать ProcessDocuments Оператор (подзадачи) -> FilterByLength на worldlist генерируемого оператором предыдущего ProcessDocuments ... результат является 800 на 700 матрицы ... 800 для 800 токенов от предыдущего ProcessDocuments Operator и 700 сокращенного набора токенов.

То, что я хочу достичь, - это 10 на 700 exampleset, который я могу передать оператору кластеризации Kmeans. Как я могу это сделать?

благодаря

ответ

1

Я не уверен, почему вы используете два «Рабочие документы» оператор, так как вы можете добавить «разбитие» и «Фильтр лексем (По длине)» внутри первого оператора, который должен дать то, что вы необходимость.

Вот небольшой пример этого.

<?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> 
+0

hi maerch, вот как я это сделал, но я просто попросил узнать, Я предположил, что это возможно или нет, т.е. я использую два технологических документа .... –

0

Я, как правило, согласен с предоставленным ответом; похоже, что он решает проблему, но вы можете сделать что-то вроде следующего.

  • Преобразование списка 800 слов в пример, заданный с использованием оператора WordList для данных.
  • Измените тип атрибута слова полиномиального слова на текст с помощью оператора «Номинал-текст».
  • Используйте операционные документы из оператора данных в текстовых атрибутах и ​​по длине фильтра.

я сделал что-то отдаленно похожий here

700 максимальное количество слов было бы трудно контролировать. Мне кажется, что маловероятно, чтобы список слов, отсортированных по длине, имел бы удобное отключение при 700.

Смежные вопросы