Text clustering and labeling

amir_askary_shaamir_askary_sha Member Posts: 11 Contributor I
edited December 2018 in Help

Hi,

 

I'm using Rapidminer for text clustering (kmeans) and then labeling the clusters. We have usually around 2000 documents and the texts are in German. The texts are short (title and short description of news or articles) and so far Rapidminer is working nice! In the text processing phase, I use Term Frequency vectors, instead of so commonly used TF-IDF, as I feel Term Frequency in our case works better.

 

I have now some questions.

 

- How can we label the clusters nicely? Like human readable titles.

 

- After running K-means, how can I see the top relevant document in a cluster? (As a try, I want to use simply the title of this document as the title of the whole cluster)

 

- I have trained a classification model (KNN), to put first the documents in some known groups(politics, sport, etc), and the run the main clustering process on documents in each group; to achieve a nicer two level clustering. But I don't know how I can connect the result of the classification process to the clustering process in order to have the whole process automated (instead of running the classification, and then marking the documents of each group manually and then running clustering on those documents)

 

Thank you in advance for your help.

Answers

  • kaymankayman Member Posts: 662 Unicorn

    I once did something myself using the top 3 keywords provided for each cluster to generate a more friendly naming, but can't recall anymore how I did it in detail.

     

    Was something as : cluster as label role  - process documents again but only tokenize, not need to get vectors, just tokens as wordlist -> wordlist to exampleset -> loop attributes and get top 3 for each cluster -> aggregate (concatenate) so you get your cluster header and one example containing the top 3. next loop attributes again, store the value in a macro and use this to rename the attribute.

     

    probably not the most convenient way to do it but it did the trick for me at that time. If your keywords are properly defined (so no stopwords and only relevant ones) it can be a bit easier already then using the default challenging cluster label.

     

    Don't think there is another way to create some default friendly lables, given the fact your cluster are heavily depending on the data provided and are therefore pretty volatile by nature.

  • amir_askary_shaamir_askary_sha Member Posts: 11 Contributor I

    thanks for your answer. can you please elaborate more on the steps? I don't get them exactly what to do. wordlist to exampleset? rename the attribute?

  • kaymankayman Member Posts: 662 Unicorn

    Basically when you have done your clustering you will have your text and the predicted cluster. The base id is to reuse this to get the topwords assigned by a given cluster.

     

     

    maybe this can get you started, I did not find the time to get it fully working but it's close to final. You only need to provide your original text and cluster as label, and you get an exampleset in return with a proposed new label. Only thing missing is the final loop logic to rename your actual attributes.

     

    <?xml version="1.0" encoding="UTF-8"?><process version="7.6.001">
    <context>
    <input/>
    <output/>
    <macros/>
    </context>
    <operator activated="true" class="process" compatibility="7.6.001" expanded="true" name="Process">
    <process expanded="true">
    <operator activated="true" class="retrieve" compatibility="7.6.001" expanded="true" height="68" name="your cluster" width="90" x="45" y="34">
    <parameter key="repository_entry" value="your_cluster-data"/>
    </operator>
    <operator activated="true" class="filter_example_range" compatibility="7.6.001" expanded="true" height="82" name="Filter Example Range" width="90" x="112" y="187">
    <parameter key="first_example" value="1"/>
    <parameter key="last_example" value="100"/>
    </operator>
    <operator activated="true" class="set_role" compatibility="7.6.001" expanded="true" height="82" name="Set Role" width="90" x="179" y="34">
    <parameter key="attribute_name" value="cluster"/>
    <parameter key="target_role" value="label"/>
    <list key="set_additional_roles"/>
    </operator>
    <operator activated="true" class="nominal_to_text" compatibility="7.6.001" expanded="true" height="82" name="Nominal to Text" width="90" x="313" y="34">
    <parameter key="attribute_filter_type" value="single"/>
    <parameter key="attribute" value="case_label"/>
    </operator>
    <operator activated="true" class="text:process_document_from_data" compatibility="7.5.000" expanded="true" height="82" name="Process Documents from Data" width="90" x="447" y="34">
    <parameter key="create_word_vector" value="false"/>
    <parameter key="keep_text" value="true"/>
    <list key="specify_weights"/>
    <process expanded="true">
    <operator activated="true" class="text:transform_cases" compatibility="7.5.000" expanded="true" height="68" name="Transform Cases" width="90" x="112" y="34"/>
    <operator activated="true" class="text:tokenize" compatibility="7.5.000" expanded="true" height="68" name="Tokenize" width="90" x="246" y="34">
    <parameter key="mode" value="regular expression"/>
    <parameter key="expression" value="\s"/>
    </operator>
    <operator activated="true" class="text:filter_stopwords_english" compatibility="7.5.000" expanded="true" height="68" name="Filter Stopwords (English)" width="90" x="380" y="34"/>
    <operator activated="true" class="text:filter_by_length" compatibility="7.5.000" expanded="true" height="68" name="Filter Tokens (by Length)" width="90" x="514" y="34">
    <parameter key="min_chars" value="2"/>
    </operator>
    <connect from_port="document" to_op="Transform Cases" to_port="document"/>
    <connect from_op="Transform Cases" from_port="document" to_op="Tokenize" to_port="document"/>
    <connect from_op="Tokenize" from_port="document" to_op="Filter Stopwords (English)" to_port="document"/>
    <connect from_op="Filter Stopwords (English)" 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="text:wordlist_to_data" compatibility="7.5.000" expanded="true" height="82" name="WordList to Data" width="90" x="581" y="34"/>
    <operator activated="true" class="select_attributes" compatibility="7.6.001" expanded="true" height="82" name="Select Attributes" width="90" x="581" y="187">
    <parameter key="attribute_filter_type" value="subset"/>
    <parameter key="attributes" value="in documents|total"/>
    <parameter key="invert_selection" value="true"/>
    </operator>
    <operator activated="true" class="de_pivot" compatibility="7.6.001" expanded="true" height="82" name="De-Pivot" width="90" x="715" y="187">
    <list key="attribute_name">
    <parameter key="keyword_count" value="in class.*"/>
    </list>
    <parameter key="index_attribute" value="cluster_name"/>
    <parameter key="create_nominal_index" value="true"/>
    </operator>
    <operator activated="true" class="concurrency:loop_values" compatibility="7.6.001" expanded="true" height="82" name="Loop Values" width="90" x="581" y="391">
    <parameter key="attribute" value="cluster_name"/>
    <process expanded="true">
    <operator activated="true" class="filter_examples" compatibility="7.6.001" expanded="true" height="103" name="Filter Examples" width="90" x="45" y="34">
    <list key="filters_list">
    <parameter key="filters_entry_key" value="cluster_name.equals.%{loop_value}"/>
    </list>
    </operator>
    <operator activated="true" class="sort" compatibility="7.6.001" expanded="true" height="82" name="Sort" width="90" x="179" y="34">
    <parameter key="attribute_name" value="keyword_count"/>
    <parameter key="sorting_direction" value="decreasing"/>
    </operator>
    <operator activated="true" class="filter_example_range" compatibility="7.6.001" expanded="true" height="82" name="Filter Example Range (2)" width="90" x="313" y="34">
    <parameter key="first_example" value="1"/>
    <parameter key="last_example" value="3"/>
    </operator>
    <operator activated="true" class="aggregate" compatibility="7.6.001" expanded="true" height="82" name="Aggregate" width="90" x="447" y="34">
    <list key="aggregation_attributes">
    <parameter key="word" value="concatenation"/>
    </list>
    <parameter key="group_by_attributes" value="cluster_name"/>
    </operator>
    <operator activated="true" class="rename" compatibility="7.6.001" expanded="true" height="82" name="Rename" width="90" x="581" y="34">
    <parameter key="old_name" value="concat(word)"/>
    <parameter key="new_name" value="new_name"/>
    <list key="rename_additional_attributes">
    <parameter key="cluster_name" value="old_name"/>
    </list>
    </operator>
    <operator activated="true" class="replace" compatibility="7.6.001" expanded="true" height="82" name="Replace" width="90" x="715" y="34">
    <parameter key="attribute_filter_type" value="single"/>
    <parameter key="attribute" value="new_name"/>
    <parameter key="replace_what" value="\|"/>
    <parameter key="replace_by" value="_"/>
    </operator>
    <connect from_port="input 1" to_op="Filter Examples" to_port="example set input"/>
    <connect from_op="Filter Examples" from_port="example set output" to_op="Sort" to_port="example set input"/>
    <connect from_op="Sort" from_port="example set output" to_op="Filter Example Range (2)" to_port="example set input"/>
    <connect from_op="Filter Example Range (2)" from_port="example set output" to_op="Aggregate" to_port="example set input"/>
    <connect from_op="Aggregate" from_port="example set output" to_op="Rename" to_port="example set input"/>
    <connect from_op="Rename" from_port="example set output" to_op="Replace" to_port="example set input"/>
    <connect from_op="Replace" from_port="example set output" to_port="output 1"/>
    <portSpacing port="source_input 1" spacing="0"/>
    <portSpacing port="source_input 2" spacing="0"/>
    <portSpacing port="sink_output 1" spacing="0"/>
    <portSpacing port="sink_output 2" spacing="0"/>
    </process>
    </operator>
    <operator activated="true" class="append" compatibility="7.6.001" expanded="true" height="82" name="Append" width="90" x="715" y="391"/>
    <connect from_op="your cluster" from_port="output" to_op="Filter Example Range" to_port="example set input"/>
    <connect from_op="Filter Example Range" from_port="example set output" to_op="Set Role" to_port="example set input"/>
    <connect from_op="Set Role" from_port="example set output" to_op="Nominal to Text" to_port="example set input"/>
    <connect from_op="Nominal to Text" from_port="example set output" to_op="Process Documents from Data" to_port="example set"/>
    <connect from_op="Process Documents from Data" from_port="word list" to_op="WordList to Data" to_port="word list"/>
    <connect from_op="WordList to Data" from_port="example set" to_op="Select Attributes" to_port="example set input"/>
    <connect from_op="Select Attributes" from_port="example set output" to_op="De-Pivot" to_port="example set input"/>
    <connect from_op="De-Pivot" from_port="example set output" to_op="Loop Values" to_port="input 1"/>
    <connect from_op="Loop Values" from_port="output 1" to_op="Append" to_port="example set 1"/>
    <connect from_op="Append" from_port="merged set" 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>
  • amir_askary_shaamir_askary_sha Member Posts: 11 Contributor I

    Hi Keyman,

     

    thank you very much for your help & time.

    It doesn't work as it is. You see my process as xml here; I've added the clustering part as a sub-process as needed.

    In the last step, Append, it says wrong process type, and the result of text processing part is an empty table.

    <?xml version="1.0" encoding="UTF-8"?><process version="7.6.001">
    <context>
    <input/>
    <output/>
    <macros/>
    </context>
    <operator activated="true" class="process" compatibility="7.6.001" expanded="true" name="Process">
    <parameter key="logverbosity" value="init"/>
    <parameter key="random_seed" value="2001"/>
    <parameter key="send_mail" value="never"/>
    <parameter key="notification_email" value=""/>
    <parameter key="process_duration_for_mail" value="30"/>
    <parameter key="encoding" value="SYSTEM"/>
    <process expanded="true">
    <operator activated="true" class="subprocess" compatibility="7.6.001" expanded="true" height="103" name="Clustering Part" width="90" x="45" y="391">
    <process expanded="true">
    <operator activated="true" class="open_file" compatibility="7.6.001" expanded="true" height="68" name="Open File" width="90" x="45" y="442">
    <parameter key="resource_type" value="URL"/>
    </operator>
    <operator activated="true" class="advanced_file_connectors:read_xml" compatibility="7.6.001" expanded="true" height="68" name="Read XML" width="90" x="112" y="289">
    <parameter key="file" value="C:\Users\Amir Askary\My Downloads\ihre_sz_articles.xml"/>
    <parameter key="xpath_for_examples" value="//response/result/doc"/>
    <enumeration key="xpaths_for_attributes">
    <parameter key="xpath_for_attribute" value="str[1]/attribute::name"/>
    <parameter key="xpath_for_attribute" value="str[1]/text()"/>
    <parameter key="xpath_for_attribute" value="str[2]/attribute::name"/>
    <parameter key="xpath_for_attribute" value="str[2]/text()"/>
    </enumeration>
    <parameter key="use_namespaces" value="true"/>
    <list key="namespaces"/>
    <parameter key="use_default_namespace" value="false"/>
    <parameter key="parse_numbers" value="true"/>
    <parameter key="decimal_character" value="."/>
    <parameter key="grouped_digits" value="false"/>
    <parameter key="grouping_character" value=","/>
    <parameter key="date_format" value=""/>
    <list key="annotations"/>
    <parameter key="time_zone" value="SYSTEM"/>
    <parameter key="locale" value="German (Germany)"/>
    <list key="data_set_meta_data_information">
    <parameter key="0" value="str[1]/attribute::name.false.polynominal.attribute"/>
    <parameter key="1" value="title.true.text.attribute"/>
    <parameter key="2" value="str[2]/attribute::name.false.polynominal.attribute"/>
    <parameter key="3" value="description.true.text.attribute"/>
    </list>
    <parameter key="read_not_matching_values_as_missings" value="true"/>
    <parameter key="datamanagement" value="double_array"/>
    <parameter key="data_management" value="auto"/>
    </operator>
    <operator activated="true" class="split_data" compatibility="7.6.001" expanded="true" height="82" name="Split Data" width="90" x="246" y="391">
    <enumeration key="partitions">
    <parameter key="ratio" value="0.05"/>
    <parameter key="ratio" value="0.95"/>
    </enumeration>
    <parameter key="sampling_type" value="linear sampling"/>
    <parameter key="use_local_random_seed" value="false"/>
    <parameter key="local_random_seed" value="1992"/>
    </operator>
    <operator activated="true" class="generate_id" compatibility="7.6.001" expanded="true" height="82" name="Generate ID" width="90" x="313" y="238">
    <parameter key="create_nominal_ids" value="false"/>
    <parameter key="offset" value="0"/>
    </operator>
    <operator activated="true" class="text:data_to_documents" compatibility="7.5.000" expanded="true" height="68" name="Data to Documents" width="90" x="380" y="136">
    <parameter key="select_attributes_and_weights" value="true"/>
    <list key="specify_weights">
    <parameter key="title" value="4.0"/>
    <parameter key="description" value="1.0"/>
    </list>
    </operator>
    <operator activated="true" class="text:filter_documents_by_content" compatibility="7.5.000" expanded="true" height="82" name="Filter Documents (by Content)" width="90" x="581" y="289">
    <parameter key="condition" value="contains match"/>
    <parameter key="regular_expression" value="(.* nicht gefunden .*|.* unavailable .*|.* 404 .*|.* service not available .*)"/>
    <parameter key="case_sensitive" value="false"/>
    <parameter key="invert condition" value="true"/>
    </operator>
    <operator activated="true" class="text:process_documents" compatibility="7.5.000" expanded="true" height="103" name="Process Documents" width="90" x="715" y="136">
    <parameter key="create_word_vector" value="true"/>
    <parameter key="vector_creation" value="Term Frequency"/>
    <parameter key="add_meta_information" value="true"/>
    <parameter key="keep_text" value="true"/>
    <parameter key="prune_method" value="absolute"/>
    <parameter key="prune_below_percent" value="0.4"/>
    <parameter key="prune_above_percent" value="40.0"/>
    <parameter key="prune_below_absolute" value="2"/>
    <parameter key="prune_above_absolute" value="2000"/>
    <parameter key="prune_below_rank" value="0.05"/>
    <parameter key="prune_above_rank" value="0.95"/>
    <parameter key="datamanagement" value="double_sparse_array"/>
    <parameter key="data_management" value="auto"/>
    <process expanded="true">
    <operator activated="false" class="text:filter_tokens_by_pos" compatibility="7.5.000" expanded="true" height="68" name="Filter Tokens (by POS Tags)" width="90" x="447" y="493">
    <parameter key="language" value="German"/>
    <parameter key="expression" value="NE.*|NN.*|VVFIN.*|VVINF.*|VVIZU.*|VVPP.*"/>
    <parameter key="invert_filter" value="false"/>
    </operator>
    <operator activated="true" class="text:tokenize" compatibility="7.5.000" expanded="true" height="68" name="Tokenize (2)" width="90" x="45" y="187">
    <parameter key="mode" value="non letters"/>
    <parameter key="characters" value=".:"/>
    <parameter key="language" value="German"/>
    <parameter key="max_token_length" value="3"/>
    </operator>
    <operator activated="true" class="text:filter_tokens_by_content" compatibility="7.5.000" expanded="true" height="68" name="Filter Tokens (2)" width="90" x="179" y="289">
    <parameter key="condition" value="matches"/>
    <parameter key="regular_expression" value="(thing|can|your|her|you|are|that|the|welt|spiegel|online|to|of|and|on|over|for|with|as|the|a|ab|aber|ach|acht|achte|achten|achter|achtes|ag|alle|allein|allem|allen|aller|allerdings|alles|allgemeinen|als|also|am|an|ander|andere|anderem|anderen|anderer|anderes|anderm|andern|anderr|anders|au|auch|auf|aus|ausser|ausserdem|außer|außerdem|b|bald|bei|beide|beiden|beim|beispiel|bekannt|bereits|besonders|besser|besten|bin|bis|bisher|bist|c|d|d.h|da|dabei|dadurch|dafür|dagegen|daher|dahin|dahinter|damals|damit|danach|daneben|dank|dann|daran|darauf|daraus|darf|darfst|darin|darum|darunter|darüber|das|dasein|daselbst|dass|dasselbe|davon|davor|dazu|dazwischen|daß|dein|deine|deinem|deinen|deiner|deines|dem|dementsprechend|demgegenüber|demgemäss|demgemäß|demselben|demzufolge|den|denen|denn|denselben|der|deren|derer|derjenige|derjenigen|dermassen|dermaßen|derselbe|derselben|des|deshalb|desselben|dessen|deswegen|dich|die|diejenige|diejenigen|dies|diese|dieselbe|dieselben|diesem|diesen|dieser|dieses|dir|doch|dort|drei|drin|dritte|dritten|dritter|drittes|du|durch|durchaus|durfte|durften|dürfen|dürft|e|eben|ebenso|ehrlich|ei|ei,|eigen|eigene|eigenen|eigener|eigenes|ein|einander|eine|einem|einen|einer|eines|einig|einige|einigem|einigen|einiger|einiges|einmal|eins|elf|en|ende|endlich|entweder|er|ernst|erst|erste|ersten|erster|erstes|es|etwa|etwas|euch|euer|eure|eurem|euren|eurer|eures|f|folgende|früher|fünf|fünfte|fünften|fünfter|fünftes|für|g|gab|ganz|ganze|ganzen|ganzer|ganzes|gar|gedurft|gegen|gegenüber|gehabt|gehen|geht|gekannt|gekonnt|gemacht|gemocht|gemusst|genug|gerade|gern|gesagt|geschweige|gewesen|gewollt|geworden|gibt|ging|gleich|gott|gross|grosse|grossen|grosser|grosses|groß|große|großen|großer|großes|gut|gute|guter|gutes|h|hab|habe|haben|habt|hast|hat|hatte|hatten|hattest|hattet|heisst|her|heute|hier|hin|hinter|hoch|hätte|hätten|i|ich|ihm|ihn|ihnen|ihr|ihre|ihrem|ihren|ihrer|ihres|im|immer|in|indem|infolgedessen|ins|irgend|ist|j|ja|jahr|jahre|jahren|je|jede|jedem|jeden|jeder|jedermann|jedermanns|jedes|jedoch|jemand|jemandem|jemanden|jene|jenem|jenen|jener|jenes|jetzt|k|kam|kann|kannst|kaum|kein|keine|keinem|keinen|keiner|keines|kleine|kleinen|kleiner|kleines|kommen|kommt|konnte|konnten|kurz|können|könnt|könnte|l|lang|lange|leicht|leide|lieber|los|m|machen|macht|machte|mag|magst|mahn|mal|man|manche|manchem|manchen|mancher|manches|mann|mehr|mein|meine|meinem|meinen|meiner|meines|mensch|menschen|mich|mir|mit|mittel|mochte|mochten|morgen|muss|musst|musste|mussten|muß|mußt|möchte|mögen|möglich|mögt|müssen|müsst|müßt|n|na|nach|nachdem|nahm|natürlich|neben|nein|neue|neuen|neun|neunte|neunten|neunter|neuntes|nicht|nichts|nie|niemand|niemandem|niemanden|noch|nun|nur|o|ob|oben|oder|offen|oft|ohne|ordnung|p|q|r|recht|rechte|rechten|rechter|rechtes|richtig|rund|s|sa|sache|sagt|sagte|sah|satt|schlecht|schluss|schon|sechs|sechste|sechsten|sechster|sechstes|sehr|sei|seid|seien|sein|seine|seinem|seinen|seiner|seines|seit|seitdem|selbst|sich|sie|sieben|siebente|siebenten|siebenter|siebentes|sind|so|solang|solche|solchem|solchen|solcher|solches|soll|sollen|sollst|sollt|sollte|sollten|sondern|sonst|soweit|sowie|später|startseite|statt|steht|suche|t|tag|tage|tagen|tat|teil|tel|tritt|trotzdem|tun|u|uhr|um|und|und?|uns|unse|unsem|unsen|unser|unsere|unserer|unses|unter|v|vergangenen|viel|viele|vielem|vielen|vielleicht|vier|vierte|vierten|vierter|viertes|vom|von|vor|w|wahr?|wann|war|waren|warst|wart|warum|was|weg|wegen|weil|weit|weiter|weitere|weiteren|weiteres|welche|welchem|welchen|welcher|welches|wem|wen|wenig|wenige|weniger|weniges|wenigstens|wenn|wer|werde|werden|werdet|weshalb|wessen|wie|wieder|wieso|will|willst|wir|wird|wirklich|wirst|wissen|wo|woher|wohin|wohl|wollen|wollt|wollte|wollten|worden|wurde|wurden|während|währenddem|währenddessen|wäre|würde|würden|x|y|z|z.b|zehn|zehnte|zehnten|zehnter|zehntes|zeit|zu|zuerst|zugleich|zum|zunächst|zur|zurück|zusammen|zwanzig|zwar|zwei|zweite|zweiten|zweiter|zweites|zwischen|zwölf|über|überhaupt|übrigens)"/>
    <parameter key="case_sensitive" value="false"/>
    <parameter key="invert condition" value="true"/>
    </operator>
    <operator activated="true" class="text:filter_stopwords_german" compatibility="7.5.000" expanded="true" height="68" name="Filter Stopwords (2)" width="90" x="313" y="187">
    <parameter key="stop_word_list" value="Standard"/>
    </operator>
    <operator activated="true" class="text:filter_by_length" compatibility="7.5.000" expanded="true" height="68" name="Filter Tokens (3)" width="90" x="514" y="238">
    <parameter key="min_chars" value="3"/>
    <parameter key="max_chars" value="999"/>
    </operator>
    <operator activated="true" class="text:stem_german" compatibility="7.5.000" expanded="true" height="68" name="Stem (2)" width="90" x="782" y="187"/>
    <operator activated="true" class="text:generate_n_grams_terms" compatibility="7.5.000" expanded="true" height="68" name="Generate n-Grams (Terms)" width="90" x="983" y="136">
    <parameter key="max_length" value="2"/>
    </operator>
    <connect from_port="document" to_op="Tokenize (2)" to_port="document"/>
    <connect from_op="Tokenize (2)" from_port="document" to_op="Filter Tokens (2)" to_port="document"/>
    <connect from_op="Filter Tokens (2)" from_port="document" to_op="Filter Stopwords (2)" to_port="document"/>
    <connect from_op="Filter Stopwords (2)" from_port="document" to_op="Filter Tokens (3)" to_port="document"/>
    <connect from_op="Filter Tokens (3)" from_port="document" to_op="Stem (2)" to_port="document"/>
    <connect from_op="Stem (2)" from_port="document" to_op="Generate n-Grams (Terms)" to_port="document"/>
    <connect from_op="Generate n-Grams (Terms)" 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="7.6.001" expanded="true" height="82" name="Clustering" width="90" x="916" y="136">
    <parameter key="add_cluster_attribute" value="true"/>
    <parameter key="add_as_label" value="false"/>
    <parameter key="remove_unlabeled" value="false"/>
    <parameter key="k" value="10"/>
    <parameter key="max_runs" value="10"/>
    <parameter key="determine_good_start_values" value="false"/>
    <parameter key="measure_types" value="BregmanDivergences"/>
    <parameter key="mixed_measure" value="MixedEuclideanDistance"/>
    <parameter key="nominal_measure" value="NominalDistance"/>
    <parameter key="numerical_measure" value="EuclideanDistance"/>
    <parameter key="divergence" value="SquaredEuclideanDistance"/>
    <parameter key="kernel_type" value="radial"/>
    <parameter key="kernel_gamma" value="1.0"/>
    <parameter key="kernel_sigma1" value="1.0"/>
    <parameter key="kernel_sigma2" value="0.0"/>
    <parameter key="kernel_sigma3" value="2.0"/>
    <parameter key="kernel_degree" value="3.0"/>
    <parameter key="kernel_shift" value="1.0"/>
    <parameter key="kernel_a" value="1.0"/>
    <parameter key="kernel_b" value="0.0"/>
    <parameter key="max_optimization_steps" value="100"/>
    <parameter key="use_local_random_seed" value="false"/>
    <parameter key="local_random_seed" value="1992"/>
    </operator>
    <connect from_op="Open File" from_port="file" to_op="Read XML" to_port="file"/>
    <connect from_op="Read XML" from_port="output" to_op="Split Data" to_port="example set"/>
    <connect from_op="Split Data" from_port="partition 1" to_op="Generate ID" to_port="example set input"/>
    <connect from_op="Generate ID" from_port="example set output" to_op="Data to Documents" to_port="example set"/>
    <connect from_op="Data to Documents" from_port="documents" to_op="Filter Documents (by Content)" to_port="documents 1"/>
    <connect from_op="Filter Documents (by Content)" from_port="documents" to_op="Process Documents" to_port="documents 1"/>
    <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="out 1"/>
    <connect from_op="Clustering" from_port="clustered set" to_port="out 2"/>
    <portSpacing port="source_in 1" spacing="0"/>
    <portSpacing port="sink_out 1" spacing="0"/>
    <portSpacing port="sink_out 2" spacing="0"/>
    <portSpacing port="sink_out 3" spacing="0"/>
    </process>
    </operator>
    <operator activated="true" class="filter_example_range" compatibility="7.6.001" expanded="true" height="82" name="Filter Example Range" width="90" x="112" y="187">
    <parameter key="first_example" value="1"/>
    <parameter key="last_example" value="100"/>
    <parameter key="invert_filter" value="false"/>
    </operator>
    <operator activated="true" class="set_role" compatibility="7.6.001" expanded="true" height="82" name="Set Role" width="90" x="179" y="34">
    <parameter key="attribute_name" value="cluster"/>
    <parameter key="target_role" value="label"/>
    <list key="set_additional_roles"/>
    </operator>
    <operator activated="true" class="nominal_to_text" compatibility="7.6.001" expanded="true" height="82" name="Nominal to Text" width="90" x="313" y="34">
    <parameter key="attribute_filter_type" value="single"/>
    <parameter key="attribute" value="cluster"/>
    <parameter key="attributes" value=""/>
    <parameter key="use_except_expression" value="false"/>
    <parameter key="value_type" value="nominal"/>
    <parameter key="use_value_type_exception" value="false"/>
    <parameter key="except_value_type" value="file_path"/>
    <parameter key="block_type" value="single_value"/>
    <parameter key="use_block_type_exception" value="false"/>
    <parameter key="except_block_type" value="single_value"/>
    <parameter key="invert_selection" value="false"/>
    <parameter key="include_special_attributes" value="true"/>
    </operator>
    <operator activated="true" class="text:process_document_from_data" compatibility="7.5.000" expanded="true" height="82" name="Process Documents from Data" width="90" x="447" y="34">
    <parameter key="create_word_vector" value="true"/>
    <parameter key="vector_creation" value="Term Frequency"/>
    <parameter key="add_meta_information" value="true"/>
    <parameter key="keep_text" value="true"/>
    <parameter key="prune_method" value="none"/>
    <parameter key="prune_below_percent" value="3.0"/>
    <parameter key="prune_above_percent" value="30.0"/>
    <parameter key="prune_below_rank" value="0.05"/>
    <parameter key="prune_above_rank" value="0.95"/>
    <parameter key="datamanagement" value="double_sparse_array"/>
    <parameter key="data_management" value="auto"/>
    <parameter key="select_attributes_and_weights" value="false"/>
    <list key="specify_weights"/>
    <process expanded="true">
    <operator activated="true" class="text:transform_cases" compatibility="7.5.000" expanded="true" height="68" name="Transform Cases" width="90" x="112" y="34">
    <parameter key="transform_to" value="lower case"/>
    </operator>
    <operator activated="true" class="text:tokenize" compatibility="7.5.000" expanded="true" height="68" name="Tokenize" width="90" x="313" y="34">
    <parameter key="mode" value="non letters"/>
    <parameter key="characters" value=".:"/>
    <parameter key="expression" value="\s"/>
    <parameter key="language" value="English"/>
    <parameter key="max_token_length" value="3"/>
    </operator>
    <operator activated="true" class="text:filter_stopwords_german" compatibility="7.5.000" expanded="true" height="68" name="Filter Stopwords (German)" width="90" x="480" y="34">
    <parameter key="stop_word_list" value="Standard"/>
    </operator>
    <operator activated="true" class="text:filter_by_length" compatibility="7.5.000" expanded="true" height="68" name="Filter Tokens (by Length)" width="90" x="648" y="34">
    <parameter key="min_chars" value="2"/>
    <parameter key="max_chars" value="25"/>
    </operator>
    <connect from_port="document" to_op="Transform Cases" to_port="document"/>
    <connect from_op="Transform Cases" from_port="document" to_op="Tokenize" to_port="document"/>
    <connect from_op="Tokenize" from_port="document" to_op="Filter Stopwords (German)" to_port="document"/>
    <connect from_op="Filter Stopwords (German)" 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="text:wordlist_to_data" compatibility="7.5.000" expanded="true" height="82" name="WordList to Data" width="90" x="581" y="34"/>
    <operator activated="true" class="select_attributes" compatibility="7.6.001" expanded="true" height="82" name="Select Attributes" width="90" x="581" y="187">
    <parameter key="attribute_filter_type" value="subset"/>
    <parameter key="attribute" value=""/>
    <parameter key="attributes" value="in documents|total"/>
    <parameter key="use_except_expression" value="false"/>
    <parameter key="value_type" value="attribute_value"/>
    <parameter key="use_value_type_exception" value="false"/>
    <parameter key="except_value_type" value="time"/>
    <parameter key="block_type" value="attribute_block"/>
    <parameter key="use_block_type_exception" value="false"/>
    <parameter key="except_block_type" value="value_matrix_row_start"/>
    <parameter key="invert_selection" value="true"/>
    <parameter key="include_special_attributes" value="false"/>
    </operator>
    <operator activated="true" class="de_pivot" compatibility="7.6.001" expanded="true" height="82" name="De-Pivot" width="90" x="715" y="187">
    <list key="attribute_name">
    <parameter key="keyword_count" value="in class.*"/>
    </list>
    <parameter key="index_attribute" value="cluster_name"/>
    <parameter key="create_nominal_index" value="true"/>
    <parameter key="keep_missings" value="false"/>
    </operator>
    <operator activated="true" class="concurrency:loop_values" compatibility="7.6.001" expanded="true" height="82" name="Loop Values" width="90" x="581" y="391">
    <parameter key="attribute" value="cluster_name"/>
    <parameter key="iteration_macro" value="loop_value"/>
    <parameter key="reuse_results" value="false"/>
    <parameter key="enable_parallel_execution" value="true"/>
    <process expanded="true">
    <operator activated="true" class="filter_examples" compatibility="7.6.001" expanded="true" height="103" name="Filter Examples" width="90" x="45" y="34">
    <parameter key="parameter_expression" value=""/>
    <parameter key="condition_class" value="custom_filters"/>
    <parameter key="invert_filter" value="false"/>
    <list key="filters_list">
    <parameter key="filters_entry_key" value="cluster_name.equals.%{loop_value}"/>
    </list>
    <parameter key="filters_logic_and" value="true"/>
    <parameter key="filters_check_metadata" value="true"/>
    </operator>
    <operator activated="true" class="sort" compatibility="7.6.001" expanded="true" height="82" name="Sort" width="90" x="179" y="34">
    <parameter key="attribute_name" value="keyword_count"/>
    <parameter key="sorting_direction" value="decreasing"/>
    </operator>
    <operator activated="true" class="filter_example_range" compatibility="7.6.001" expanded="true" height="82" name="Filter Example Range (2)" width="90" x="313" y="34">
    <parameter key="first_example" value="1"/>
    <parameter key="last_example" value="3"/>
    <parameter key="invert_filter" value="false"/>
    </operator>
    <operator activated="true" class="aggregate" compatibility="7.6.001" expanded="true" height="82" name="Aggregate" width="90" x="447" y="34">
    <parameter key="use_default_aggregation" value="false"/>
    <parameter key="attribute_filter_type" value="all"/>
    <parameter key="attribute" value=""/>
    <parameter key="attributes" value=""/>
    <parameter key="use_except_expression" value="false"/>
    <parameter key="value_type" value="attribute_value"/>
    <parameter key="use_value_type_exception" value="false"/>
    <parameter key="except_value_type" value="time"/>
    <parameter key="block_type" value="attribute_block"/>
    <parameter key="use_block_type_exception" value="false"/>
    <parameter key="except_block_type" value="value_matrix_row_start"/>
    <parameter key="invert_selection" value="false"/>
    <parameter key="include_special_attributes" value="false"/>
    <parameter key="default_aggregation_function" value="average"/>
    <list key="aggregation_attributes">
    <parameter key="word" value="concatenation"/>
    </list>
    <parameter key="group_by_attributes" value="cluster_name"/>
    <parameter key="count_all_combinations" value="false"/>
    <parameter key="only_distinct" value="false"/>
    <parameter key="ignore_missings" value="true"/>
    </operator>
    <operator activated="true" class="rename" compatibility="7.6.001" expanded="true" height="82" name="Rename" width="90" x="581" y="34">
    <parameter key="old_name" value="concat(word)"/>
    <parameter key="new_name" value="new_name"/>
    <list key="rename_additional_attributes">
    <parameter key="cluster_name" value="old_name"/>
    </list>
    </operator>
    <operator activated="true" class="replace" compatibility="7.6.001" expanded="true" height="82" name="Replace" width="90" x="715" y="34">
    <parameter key="attribute_filter_type" value="single"/>
    <parameter key="attribute" value="new_name"/>
    <parameter key="attributes" value=""/>
    <parameter key="use_except_expression" value="false"/>
    <parameter key="value_type" value="nominal"/>
    <parameter key="use_value_type_exception" value="false"/>
    <parameter key="except_value_type" value="file_path"/>
    <parameter key="block_type" value="single_value"/>
    <parameter key="use_block_type_exception" value="false"/>
    <parameter key="except_block_type" value="single_value"/>
    <parameter key="invert_selection" value="false"/>
    <parameter key="include_special_attributes" value="false"/>
    <parameter key="replace_what" value="\|"/>
    <parameter key="replace_by" value="_"/>
    </operator>
    <connect from_port="input 1" to_op="Filter Examples" to_port="example set input"/>
    <connect from_op="Filter Examples" from_port="example set output" to_op="Sort" to_port="example set input"/>
    <connect from_op="Sort" from_port="example set output" to_op="Filter Example Range (2)" to_port="example set input"/>
    <connect from_op="Filter Example Range (2)" from_port="example set output" to_op="Aggregate" to_port="example set input"/>
    <connect from_op="Aggregate" from_port="example set output" to_op="Rename" to_port="example set input"/>
    <connect from_op="Rename" from_port="example set output" to_op="Replace" to_port="example set input"/>
    <connect from_op="Replace" from_port="example set output" to_port="output 1"/>
    <portSpacing port="source_input 1" spacing="0"/>
    <portSpacing port="source_input 2" spacing="0"/>
    <portSpacing port="sink_output 1" spacing="0"/>
    <portSpacing port="sink_output 2" spacing="0"/>
    </process>
    </operator>
    <operator activated="true" class="append" compatibility="7.6.001" expanded="true" height="82" name="Append" width="90" x="715" y="391">
    <parameter key="datamanagement" value="double_array"/>
    <parameter key="data_management" value="auto"/>
    <parameter key="merge_type" value="all"/>
    </operator>
    <connect from_op="Clustering Part" from_port="out 2" to_op="Filter Example Range" to_port="example set input"/>
    <connect from_op="Filter Example Range" from_port="example set output" to_op="Set Role" to_port="example set input"/>
    <connect from_op="Set Role" from_port="example set output" to_op="Nominal to Text" to_port="example set input"/>
    <connect from_op="Nominal to Text" from_port="example set output" to_op="Process Documents from Data" to_port="example set"/>
    <connect from_op="Process Documents from Data" from_port="word list" to_op="WordList to Data" to_port="word list"/>
    <connect from_op="WordList to Data" from_port="example set" to_op="Select Attributes" to_port="example set input"/>
    <connect from_op="Select Attributes" from_port="example set output" to_op="De-Pivot" to_port="example set input"/>
    <connect from_op="De-Pivot" from_port="example set output" to_op="Loop Values" to_port="input 1"/>
    <connect from_op="Loop Values" from_port="output 1" to_op="Append" to_port="example set 1"/>
    <connect from_op="Append" from_port="merged set" 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>

     

  • amir_askary_shaamir_askary_sha Member Posts: 11 Contributor I

    @kayman Hi Keyman, I can't get it work. I get some errors. Could you please read my previous post and help me to get it run? Thanks

  • kaymankayman Member Posts: 662 Unicorn

    Hi, it's a bit complex to spot since there is no data to work with, did you try to follow the data to see where it goes missing? So just using a breakpoint on each major step?

    Otherwise feel free to send me a real data sample so I can try to generate and see where the issue migh be.

  • amir_askary_shaamir_askary_sha Member Posts: 11 Contributor I

    @kayman

    I think it's not about the data but I provided you here 100 sample documents that I use anyway in xml format:

    <response>
    <result name="response" numFound="2938" start="0">
    <doc>
    <str name="title">
    https://www.solarify.eu/2017/08/06/137-so-wird-big-oil-zu-ende-gehen/
    </str>
    <str name="description"/>
    </doc>
    <doc>
    <str name="title">Protektionismus versus Freihandel?</str>
    <str name="description">
    Alle Welt spricht von Protektionismus und Freihandel. Wer gegen Freihandel ist, ist Protektionist. So einfach ist das. Bei näherer Betrachtung stehen jedoch beide Begriffe für spiegelgleiche Extrempositionen
    </str>
    </doc>
    <doc>
    <str name="title">Trump will fossile "Energierevolution"</str>
    <str name="description">
    Nach dem Willen ihres Präsidenten sollen die USA künftig den Weltmarkt für Energie dominieren, und zwar mit Atomkraft, Kohle, Öl und Gas
    </str>
    </doc>
    <doc>
    <str name="title">
    Öko-Bilanz von E-Autos: Angst vor den Grenzen der Stromversorgung
    </str>
    <str name="description">
    Dennoch: Mit der Angst, die Elektromobilität könnte die Stromversorgung langfristig an ihre Grenzen bringen, haben auch schon andere gespielt.
    </str>
    </doc>
    <doc>
    <str name="title">
    Ökobilanz! Elektroauto ist besser als Verbrenner | E-Mobilität in Wien
    </str>
    <str name="description">
    Ökobilanz: Elektroautos oder fossile Verbrenner? Eines Vorweg: Das Elektroauto hat die Nase vorne, und es wird in Zukunft noch besser sein.
    </str>
    </doc>
    <doc>
    <str name="title">
    Energiepolitische Wahlprüfsteine zur Bundestagswahl 2017
    </str>
    <str name="description">
    EUROSOLAR hat zur Bundestagswahl 2017 Wahlprüfsteine für die im Bundestag oder in mindestens der Hälfte der Landtage vertretenen Parteien erstellt.
    </str>
    </doc>
    <doc>
    <str name="title">
    WETTEN, dass....der ENERGIEWENDE: FRANZ ALT HANS-JOSEF FELL
    </str>
    <str name="description">
    Franz Alt und Hans-Josef Fell sind die Giganten der Energiewende und die berühmtesten deutschsprachigen Protagonisten für eine regenerative Energieversorgung. Auf dem E3/DC-Stand während der INTERSOLAR 2017 waren sie zu Gast bei "Leben mit der Energiewende TV".
    </str>
    </doc>
    <doc>
    <str name="title">
    Windkraft in NRW stärken, Verhinderungsgesetz stoppen
    </str>
    <str name="description">
    Schon einmal hatte eine Schwarz-Gelbe Landesregierung den Ausbau der Windkraft im bevölkerungsreichsten Bundesland zum Erliegen gebracht. Eine Neuauflage dieses Verhinderungsgesetzes ist nun Bestandteil eines erneuten Koalitionsvertrages zwischen der CDU und der FDP. Die angedachten 1500m Mindestabstand zur nächsten Wohnbebauung sind aber bei unserer Siedlungsdichte einfach unrealistisch und werden den Ausbau wieder zum Erliegen bringen. Des Weiteren ist dieses Gesetzesvorhaben einfach...
    </str>
    </doc>
    <doc>
    <str name="title">Stelter strategisch: Die brutale Revolution</str>
    <str name="description">
    Die technologische Revolution bei Stromerzeugung und Autoantrieb droht ein Desaster für unsere Portfolios zu werden. Deutschlands Wirtschaft wird sich fundamental wandeln. Anleger können daraus nur einen Schluss ziehen.
    </str>
    </doc>
    <doc>
    <str name="title">
    Kommentar: Mit Trump ist der größte Bremser von Bord
    </str>
    <str name="description">
    Der Bremser Trump hat den Klimazug verlassen - aber auch ohne ihn werden die USA und der Rest der Welt ihren Weg aus der Klimakatastrophe finden müssen, meint Jürgen Döschner. Denn entscheidend ist, was die Weltgemeinschaft gegen den Klimawandel tut.
    </str>
    </doc>
    <doc>
    <str name="title">
    #kurzerklärt: Worüber streiten Klimaforscher und -skeptiker?
    </str>
    <str name="description">
    Die Klimaerwärmung ist eine Erfindung der Chinesen, um der US-Wirtschaft zu schaden - das hat zumindest US-Präsident Trump behauptet. Aber was sagt die Wissenschaft dazu? Worüber streiten Klimaforscher und -skeptiker? Von Charlotte Gnändiger.
    </str>
    </doc>
    <doc>
    <str name="title">Schweiz wählt den schrittweisen Atomausstieg</str>
    <str name="description">
    Strom soll künftig aus Sonne, Wind und Wasser gewonnen werden. Doch die bestehenden Atomkraftwerke bleiben am Netz.
    </str>
    </doc>
    <doc>
    <str name="title">Klimawandel: Fakten zum Klimawandel</str>
    <str name="description">
    Die Erde erwärmt sich ungebremst weiter.An den Polen schmilzt das Eis im Rekordtempo. Weltweit nehmen Wetterextreme zu. Im ersten Teil unseres Themenschwerpunkts geht es um die Folgen des Klimawandels.
    </str>
    </doc>
    <doc>
    <str name="title">
    Rekordjahr 2016: die wichtigsten Daten und Grafiken, die jeder kennen sollte
    </str>
    <str name="description">
    Neulich auf einer Party. Alle schimpfen über Donald Trump. Wie dumm der doch ist, wie verhaltensgestört. Dann kommen wir auf das Thema Klimawandel, ob das ein dringliches Thema ist. „Ich glau…
    </str>
    </doc>
    <doc>
    <str name="title">
    Wissenschafts-Kommunikation im Trump-o-zän: Wie wir alle das post-faktische Zeitalter verhindern können
    </str>
    <str name="description"/>
    </doc>
    <doc>
    <str name="title">US-Demokraten wählen Clinton-Unterstützer zum Chef</str>
    <str name="description">
    Die US-Demokraten haben den früheren Arbeitsminister Perez zu ihrem neuen Parteichef gewählt. Der Bürgerrechtsanwalt hatte im Vorwahlkampf für Hillary Clinton geworben. Perez setzte sich gegen den Abgeordneten Ellison durch.
    </str>
    </doc>
    <doc>
    <str name="title">
    Schafft Deutschland seine Klimaschutzziele? » KlimaLounge » SciLogs - Wissenschaftsblogs
    </str>
    <str name="description">
    Die deutsche Regierung gibt sich gerne als Vorreiter beim Klimaschutz. Als eines der ersten Länder, die das Pariser Klimaschutzabkommen unterzeichnet haben, hat Deutschland einen Klimaschutzplan vorgelegt. Können wir damit die Verpflichtungen des Pariser Klimaschutzabkommens wirklich … Weiterlesen
    </str>
    </doc>
    <doc>
    <str name="title">
    Können wir die globale Erwärmung rechtzeitig stoppen? » KlimaLounge » SciLogs - Wissenschaftsblogs
    </str>
    <str name="description">
    Im Pariser Abkommen wurde, bildlich gesprochen, die Rettung der Welt vereinbart. Aber geht das überhaupt noch, und wie? Zunächst: was heißt hier die Erwärmung „rechtzeitig“ stoppen? Darüber kann man durchaus unterschiedlicher Meinung sein – für … Weiterlesen
    </str>
    </doc>
    <doc>
    <str name="title">
    Analyse: Deutschland droht seine Klimaziele zu verfehlen
    </str>
    <str name="description">
    Eine Untersuchung des Bundesverbandes Erneuerbare Energie (BEE) stellt der Bundesregierung schlechte Noten bei der Energiewende aus.
    </str>
    </doc>
    <doc>
    <str name="title">Aufregung um Hendricks-Kampagne unverständlich</str>
    <str name="description">
    Bundesumweltministerin Barbara Hendricks hat ihre umstrittene Bauernregeln-Kampagne für eine umweltverträgliche Landwirtschaft gestoppt. Ein Kommentar von Torsten Huhn.
    </str>
    </doc>
    <doc>
    <str name="title">Diese Seite wurde leider nicht gefunden</str>
    <str name="description">Sorry - diese Seite wurde leider nicht gefunden!</str>
    </doc>
    <doc>
    <str name="title">
    Nachweis einer anthropogenen Klimaänderung – Klimawandel
    </str>
    <str name="description"/>
    </doc>
    <doc>
    <str name="title">
    "Neue Bauernregeln": Provokativ, frech und diskussionswürdig | BR.de
    </str>
    <str name="description">
    "Steht das Schwein auf einem Bein, ist der Schweinestall zu klein" oder "Zu viel Dünger, das ist Fakt, ist fürs Grundwasser beknackt" - solche und andere Bauenregeln will die Bundesumweltministerin plakatieren. Und stößt damit auf Kritik bei den Landwirten. Wir haben für Sie die Regeln gesammelt.
    </str>
    </doc>
    <doc>
    <str name="title">ttt - Industrie 4.0 & Grundeinkommen</str>
    <str name="description">
    Ausschnitt aus der Sendung 'ttt - titel, thesen, temperamente' vom 29.01.2017. Die ganze Sendung kann unter http://www.ardmediathek.de/tv/ttt-titel-thesen-...
    </str>
    </doc>
    <doc>
    <str name="title">
    Deutsche Autohersteller sind entsetzt über chinesische Elektroquote
    </str>
    <str name="description">
    Gerade für Konzerne wie VW und BMW würde eine solche Quote "großen Stress" bedeuten. Helfen soll nun Wirtschaftsminister Gabriel.
    </str>
    </doc>
    <doc>
    <str name="title">
    Neue Energie Bendorf eG: Strömungsturbinen im Rhein sollen Strom liefern
    </str>
    <str name="description">
    Bürgerinnen und Bürger gestalten aktiv und gmeinsam die Energiewende
    </str>
    </doc>
    <doc>
    <str name="title">Die Energiewende wird zum Selbstläufer</str>
    <str name="description">
    Der Klimagipfel in Marrakesch hat ein hoffnungsvolles Zeichen gesetzt: Die Staaten wollen sich nicht vom Kurs des Paris-Abkommen abbringen lassen.
    </str>
    </doc>
    <doc>
    <str name="title">
    Agora Energiewende: Fossiles Stromsystem teurer als Erneuerbare - Energyload
    </str>
    <str name="description">
    Ist die Energiewende zu teuer? Eine Untersuchung von Agora Energiewende ergab das Gegenteil: Ein fossiles Stromsystem kostet langfristig mehr.
    </str>
    </doc>
    <doc>
    <str name="title">
    Die Abstiegsgesellschaft und die Super-Reichen | ttt – titel, thesen, temperamente
    </str>
    <str name="description">
    Der Westen steckt in einer krachenden Krise: Unsere lebenswerten, fortschrittlichen Demokratien sind dramatisch bedroht. Ungläubig beobachten die meisten Europäer die massiven Erfolge der Rechten. Was ist da nur so schief gelaufen?
    </str>
    </doc>
    <doc>
    <str name="title">Das fossile Billionengrab</str>
    <str name="description">
    Wegen der vermeintlich viel zu hohen Kosten wird derzeit der Ausbau erneuerbarer Energien gebremst. In Wahrheit verlieren wir aber mit jedem Tag, den wir die Energiewende verzögern viel Geld. Denn die fossilen Energien sind viel teurer.
    </str>
    </doc>
    <doc>
    <str name="title">
    Energie: Das Ende des Öl-Zeitalters kommt früher als erwartet
    </str>
    <str name="description">
    Die Internationale Energie-Agentur (IEA) korrigiert ihre Prognosen für die erneuerbaren Energien deutlich nach oben.
    </str>
    </doc>
    <doc>
    <str name="title">
    Windräder: Windkraft für bis zu 65 Millionen Euro im Dahlemer Wald
    </str>
    <str name="description">
    Mit zehn geplanten Windrädern ist es derzeit das größte Windkraftprojekt in einem Wald in NRW.
    </str>
    </doc>
    <doc>
    <str name="title">
    Weltweite Energiewende: Erneuerbare Energien überholen Kohle
    </str>
    <str name="description">
    In Bezug auf die weltweite Energiewende war das vergangene Jahr ein Wendepunkt, bilanziert die Internationale Energieagentur. In Bezug auf installierte Kapazität haben erneuerbare Energien die Kohle als wichtigsten Energieträger überholt.
    </str>
    </doc>
    <doc>
    <str name="title">
    Putins reiche Freunde - die Spur des geheimen Geldes
    </str>
    <str name="description">
    Die Panama Papers zeigen: Putins engstes Umfeld hat über Briefkastenfirmen Zugriff auf Hunderte Millionen Euro.
    </str>
    </doc>
    <doc>
    <str name="title">
    Entschädigung für deutsche Atomkonzerne: Berlin hat sich verkalkuliert
    </str>
    <str name="description">
    Ohne Eigentumsrechte gibt es keine Marktwirtschaft.
    </str>
    </doc>
    <doc>
    <str name="title">
    Video "Die Story im Ersten: Putins leere Kassen" - Reportage & Dokumentation
    </str>
    <str name="description">
    Russland ist ein sogenannter "Petro-Staat", dessen korrupte Eliten die Rohstoff-Erlöse ausbeuten, während Investitionen in Industrie und Infrastruktur ausbleiben. Vor allem in der russischen ...
    </str>
    </doc>
    <doc>
    <str name="title">Brasilien - ein Land trocknet aus</str>
    <str name="description">
    Brasilien, eines der wasserreichsten Länder der Erde, steckt in einer Wasserkrise. Ganze Landstriche trocknen aus. In Megastädten wie Rio de Janeiro und São Paulo herrscht Alarmstimmung.
    </str>
    </doc>
    <doc>
    <str name="title">
    [Gastbeitrag] Wird das „EEG“ 2016 vor der Sommerpause durchs Parlament gepeitscht?blog.stromhaltig
    </str>
    <str name="description">
    Der Bundesrat kann das Eilverfahren stoppen – die GRÜNEN haben es in der Hand Voller Verzweiflung schauen viele Macher der erfolgreichen deutschen Energiewende derzeit nach Berlin. Viele Mittelständler, Kommunale und Bürger sind fassungslos: Warum hilft gerade die SPD-Bundestagsfraktion der CDU/CSU, das EEG faktisch abzuschaffen? Obwohl der Koalitionsvertrag, abgesegnet vom SPD-Mitgliederentscheid, eine Ersetzung des bewährten EEG durch Ausschreibungen gar nicht in dieser Regierungszeit vorsieht. Viele erinnern sich noch daran, dass die SPD das EEG 1998 als erste Partei im Schröder-Wahlprogramm gefordert und mit den GRÜNEN in 2000 durchgesetzt hat. Trotz heftiger innerparteilicher Gegenwehr, die von den Leitmedien ignoriert wird, zeichnet sich nach der 1. Lesung im Bundestag ab: Die Mehrzahl der SPD-Abgeordneten wird wohl oder übel Energieminister Gabriel folgen. Viele hoffen noch auf die GRÜNEN, die in der Opposition im Bundestag zu Recht heftig vor dem Ausbremsen der Energiewende
    </str>
    </doc>
    <doc>
    <str name="title">
    Der gewünschte Beitrag ist nicht mehr verfügbar | ARD Mediathek
    </str>
    <str name="description">
    Der Verfügbarkeitszeitraum dieses Beitrags ist abgelaufen, daher dürfen wir ihn nicht mehr in der ARD Mediathek anbieten. Die Verweildauer von Inhalten wird durch rechtliche und reaktionelle Vorgaben bestimmt.
    </str>
    </doc>
    <doc>
    <str name="title">Energieversorgung: Welchen Netzausbau wir brauchen</str>
    <str name="description">
    Mit der Energiewende müssen neue Netze her. Doch wie und wo gezielt ausbauen?
    </str>
    </doc>
    <doc>
    <str name="title">6 Gründe gegen TTIP & CETA auf die Straße zu gehen</str>
    <str name="description">
    Seit über drei Monaten ist der 17. September 2016 fest in meinem Kalender markiert. Normalerweise merke ich nur Hochzeiten, Geburtstage, Konzerte oder Zahnarzttermine soweit vor. Diesmal aber war es eine Demonstration. An diesem Samstag finden nämlich in…
    </str>
    </doc>
    <doc>
    <str name="title">
    Erneuerbare Energien reduzieren Importe fossiler Rohstoffe
    </str>
    <str name="description">
    Die Nutzung erneuerbarer Energien hat im Jahr 2015 den Import fossiler Rohstoffe im Wert von 8,16 Milliarden Euro eingespart. Das zeigt ein Gutachten des Öko-Instituts im Auftrag von Lichtblick und WWF.
    </str>
    </doc>
    <doc>
    <str name="title">
    Studie: Konventionelle Energien teurer als Erneuerbare
    </str>
    <str name="description">
    Die versteckten Kosten für Kohle, Atom und Gas sind für Verbraucher eineinhalb mal so hoch wie die EEG-Umlage. Das zeigt eine Analyse des Forums Ökologisch-Soziale Marktwirtschaft im Auftrag von Greenpeace Energy.
    </str>
    </doc>
    <doc>
    <str name="title">
    Was Energiewende wirklich bedeutet - Never Ending Energy
    </str>
    <str name="description">
    Was bedeutet Energiewende wirklich? Dieser Blogeintrag soll Licht ins Dunkle bringen und spiegelt meine persönliche Meinung wieder.
    </str>
    </doc>
    <doc>
    <str name="title">Strömungsturbinen | Projekte</str>
    <str name="description">
    Energiegenossenschaft mit Perspektive im Landkreis Mayen-Koblenz. Regionale, dezentrale und nachhaltige Energiewende. Bürger bestimmen und entscheiden mit.
    </str>
    </doc>
    <doc>
    <str name="title">
    Energiewende: Bürger werden bei Energiewende abgehängt
    </str>
    <str name="description">
    Um die Kosten der Energiewende zu senken, stellt die Bundesregierung die Förderung von Ökoenergie-Projekten komplett um. Profitieren werden Energiekonzerne. Die Gekniffenen sind engagierte Bürger und kleine Stadtwerke.
    </str>
    </doc>
    <doc>
    <str name="title">Bill Gates fordert Robotersteuer</str>
    <str name="description">
    Der Software-Milliardär plädiert: Wenn Roboter in der Arbeitswelt Menschen ersetzen, sollen Unternehmen dafür Sozialabgaben leisten. Eine umstrittene Idee, vor der die Wirtschaftswelt warnt.
    </str>
    </doc>
    <doc>
    <str name="title">
    Stromversorgung: Intelligente Netze statt massivem Ausbau
    </str>
    <str name="description">
    Versorgungssicherheit und erneuerbare Energien, das passt bisher noch nicht zusammen. Eine höhere Netzqualität soll die Probleme künftig eindämmen.
    </str>
    </doc>
    <doc>
    <str name="title">
    Energieexperte: Ein Appell an den gesunden Menschenverstand - Erneuerbare Energie 2017
    </str>
    <str name="description">
    Der folgende Fachbeitrag des Energieexperten Prof. Dr. Lorenz Jarass ist gleichzeitig ein Appell an die Energiebranche: Professor Jarass rät dazu den aktuellen Bedarfsplan für den geplanten Stromnetzausbau erneut kritisch zu prüfen und das Energiewirtschaftsgesetz (EnWG) » read more
    </str>
    </doc>
    <doc>
    <str name="title">Raus aus der Kohle – des Klimas wegen</str>
    <str name="description">
    Veraltete Kraftwerke schaden der Energiewende, sie sind zu unflexibel in Kombination mit erneuerbaren Energien.
    </str>
    </doc>
    <doc>
    <str name="title">
    www.jarass.com - Welchen Stromnetzausbau erfordert die Energiewende?
    </str>
    <str name="description">Persönliche Homepage von Prof. Dr. Lorenz JARASS</str>
    </doc>
    <doc>
    <str name="title">Diese Seite wurde leider nicht gefunden</str>
    <str name="description">Sorry - diese Seite wurde leider nicht gefunden!</str>
    </doc>
    <doc>
    <str name="title">
    ++ Liveticker vom ersten Ring-Tag beendet: Hier alle Ereignisse zum Nachlesen
    </str>
    <str name="description">
    Mendig. Am Freitagabend zogen bei Rock am Ring heftige Gewitter auf. Das Festival musste vorübergehend unterbrochen werden. Durch Blitzeinschläge ...
    </str>
    </doc>
    <doc>
    <str name="title">
    Entscheidung über Ceta: Juncker bestätigt Ausschluss nationaler Parlamente
    </str>
    <str name="description">
    Der Chef der EU-Kommission, Jean-Claude Juncker, will über das Freihandelsabkommen mit Kanada nur das EU-Parlament abstimmen lassen.
    </str>
    </doc>
    <doc>
    <str name="title">Braunsbach und die Braunkohle</str>
    <str name="description">
    Die Katastrophe von Braunsbach wurde auch durch die deutsche Braunkohle mitverursacht. Doch die Klimafolgekosten werden von RWE und Co nicht getragen
    </str>
    </doc>
    <doc>
    <str name="title">
    Klimawandel: Der unglaubliche Eiertanz der Meteorologen
    </str>
    <str name="description">
    Nicht bloß die ungeheuren Unwetter, die Deutschland gerade heimsuchen, beweisen: Der Klimawandel findet statt. Warum reden Meteorologen den Begriff ständig klein?
    </str>
    </doc>
    <doc>
    <str name="title">
    Forum Umwelt & Entwicklung | Grundzüge einer neuen, mehrheitsfähigen Handels- und Aussenwirtschaftspolitik – Beitrag von Jürgen Maier, 01.04.2016
    </str>
    <str name="description"/>
    </doc>
    <doc>
    <str name="title">Perversion des islamischen Rechtsverständnisses</str>
    <str name="description">
    Ja, es gibt Gewalt im Namen der Scharia - da hilft es auch nichts, wenn Muslime beteuern, dies hätte nichts mit dem Islam zu tun.
    </str>
    </doc>
    <doc>
    <str name="title">
    Erneuerbare-Energien-Anlagen unterstützen künftig stärker das Mittelspannungsnetz
    </str>
    <str name="description">
    - Neue Technische Anschlussregeln Mittelspannung definieren auch Anforderungen an Speicher - Änderungsvorschläge bis 17. April 2017 möglichDas Forum Netztechnik/Netzbetrieb im VDE (VDE|FNN) definiert mit seinem Entwurf der Anwendungsregel „Technische ...
    </str>
    </doc>
    <doc>
    <str name="title">Forscher warnen vor "Klima-Exodus"</str>
    <str name="description">
    Die Folgen von Dürren und Hitzewellen könnten eine Flüchtlingswelle aus dem Nahen Osten und Nordafrika auslösen, so deutsch-zypriotische Studien.
    </str>
    </doc>
    <doc>
    <str name="title">
    Die aufgerufene Seite existiert nicht oder nicht mehr
    </str>
    <str name="description"/>
    </doc>
    <doc>
    <str name="title">
    20 Prozent der Zulieferkomponenten der weltweiten Windkraft kommen aus Deutschland - Energiewende - Erneuerbare Energien
    </str>
    <str name="description">
    In den USA überholten die Erneuerbaren-Jobs 2015 auch den Öl- und Gassektor. Deutschland Windzulieferer exportierten zwei Drittel ihrer Produktion. Zahlen zum weltweiten Jobmarkt.. Grünes Investment, Biogas und Geothermie- ERNEUERBARE ENERGIEN ist Ihr Fachmagazin für den Bereich der Bioenergie. Unabhängig und amfassend.
    </str>
    </doc>
    <doc>
    <str name="title">Energiewende in Gefahr!</str>
    <str name="description">
    Die CDU will die Energiewende lahmlegen. Großkonzerne profitieren auf Kosten von Klima und Jobs. Unterzeichne jetzt!
    </str>
    </doc>
    <doc>
    <str name="title">
    Warum die globale Erwärmung mehr Extremregen bringt » KlimaLounge » SciLogs - Wissenschaftsblogs
    </str>
    <str name="description">
    Die Gewitterfront der vergangenen Tage sei kein Beweis für den Klimawandel, wurde kürzlich ein Meteorologe zitiert. Trivial wahr aber nichtssagend, und potenziell sogar irreführend – suggeriert es doch, die Existenz des Klimawandels bedürfe noch eines … Weiterlesen
    </str>
    </doc>
    <doc>
    <str name="title">
    Offener Brief: Islamkritikerin lehnt Einladung von AfD ab
    </str>
    <str name="description">
    BERLIN. (hpd) Die Islamkritikerin Mina Ahadi wurde zu einem Gespräch mit AfD-Bundessprecherin Frauke Petry eingeladen. In einem offenen Brief erklärt sie ihre Absage.
    </str>
    </doc>
    <doc>
    <str name="title">
    Bürgerwerke: 10.000 Menschen, die gemeinsam etwas bewegen
    </str>
    <str name="description">
    Die Zukunft der Energieversorgung ist regional, erneuerbar und unabhängig. Das geht mit den Bürgerwerken schon heute! Lesen Sie hier die aktuellen Neuigkeiten zu den Bürgerwerken.
    </str>
    </doc>
    <doc>
    <str name="title">Klimaschutz kann Frieden schaffen</str>
    <str name="description">
    Auf Hitzewellen und Dürren folgen in vielen Ländern Gewaltausbrüche. Aktuelle Forschungen zeigen: Gelingt es, die Erderwärmung zu stoppen, hätte das einen unglaublichen Zusatzeffekt.
    </str>
    </doc>
    <doc>
    <str name="title">
    Gauck fordert mehr Einsatz für Energiewende und Klimaschutz
    </str>
    <str name="description">
    Bundespräsident Joachim Gauck hat mehr Engagement für Klimaschutz und die Energiewende gefordert.
    </str>
    </doc>
    <doc>
    <str name="title">
    Asylkrise: De Maizière erwartet viele Flüchtlinge aus Afrika - WELT
    </str>
    <str name="description">
    Die Zahl der Asylsuchenden ist stark gesunken. Innenminister de Maizière erwartet jedoch einen neuen Flüchtlingsstrom über das Mittelmeer. Und er rechnet mit höheren Zahlen als den bisher geschätzten.
    </str>
    </doc>
    <doc>
    <str name="title">
    Gespräch mit dem Soziologen Ruud Koopmans: Assimilation funktioniert
    </str>
    <str name="description">
    In den USA werden seine Studien rezipiert, in Europa ignoriert.
    </str>
    </doc>
    <doc>
    <str name="title">Mit Ökoenergie die Fluchtursachen begegnen</str>
    <str name="description">
    Klimawandel und fossile Energien verursachen Millionen Flüchtlinge
    </str>
    </doc>
    <doc>
    <str name="title">Reitz' Worte zum Erfolg von Tesla</str>
    <str name="description">
    Tesla stellt sein neues Elektroauto "Model 3" vor. Der Preis ist eine Kampfansage. Welche Herausforderungen nun auf die deutsche Autoindustrie zukommen, erklärt Ulrich Reitz, Leiter der n-tv-Wirtschaftsredaktion.
    </str>
    </doc>
    <doc>
    <str name="title">
    Wenn der Wind nicht weht und die Sonne nicht scheint...
    </str>
    <str name="description">
    Eine Geschichte von Überkapazitäten, die man weitererzählen sollte.
    </str>
    </doc>
    <doc>
    <str name="title">E-Autos um den Faktor 9 klimafreundlicher</str>
    <str name="description">
    Eine neue VCÖ-Publikation macht deutlich: Elektrifizierung des Verkehrs nötig, um Energie- und Klimaziele zu erreichen.
    </str>
    </doc>
    <doc>
    <str name="title">
    Terrorismusbekämpfung : Vom Rassismus zum Realismus
    </str>
    <str name="description">
    Europa hat sich im Umgang mit dem Mittleren Osten lange auf die USA verlassen. Das funktioniert nicht mehr. Es ist Zeit für eine radikal neue europäische Nahostpolitik.
    </str>
    </doc>
    <doc>
    <str name="title">Armut: "Wer unten ist, bleibt unten"</str>
    <str name="description">
    Der Ökonom Marcel Fratzscher über die wachsende Kluft zwischen Arm und Reich und das Versagen des Sozialstaats.
    </str>
    </doc>
    <doc>
    <str name="title">
    Anschläge in Europa - „Saudi-Arabien ist das geistige Epizentrum des Terrors“
    </str>
    <str name="description">
    Europa erfülle alle Voraussetzungen, um zur permanenten Zielscheibe von Terroranschlägen zu werden, sagt Buchautor Robert Baer. Im Cicero-Interview kritisiert der ehemalige CIA-Mitarbeiter und Nahost-Kenner den gescheiterten Krieg des Westens gegen den Terror und warnt davor, die Werte der EU über Bord zu werfen
    </str>
    </doc>
    <doc>
    <str name="title">
    Elektroautos sind sauberer! Ein Vergleich (Video) | Energyload
    </str>
    <str name="description">
    Nicht nur während der Nutzung sondern auch über den gesamten Lebenszyklus verursachen Elektroautos weniger Treibhausgase als Benziner. Video...
    </str>
    </doc>
    <doc>
    <str name="title">Fotos: Was in Fessenheim geschah</str>
    <str name="description">
    Am 9. April 2014 kam es im Atomkraftwerk Fessenheim zu einem Störfall, der offenbar schwerwiegender war als bisher öffentlich bekannt. Was genau geschah, erklären wir in Text und Grafik.
    </str>
    </doc>
    <doc>
    <str name="title">
    BMW-Chef fordert: Mehr Elektroautos - "und zwar schnell"
    </str>
    <str name="description">
    Seit Monaten wird viel darüber diskutiert und spekuliert, ob es in diesem Jahr tatsächlich eine staatliche Kaufprämie für Elektroautos geben wird. Kürzlich wurde zwar bereits über eine Einigung und Juli ...
    </str>
    </doc>
    <doc>
    <str name="title">Belgische AKW: Zu marode für kühles Kühlwasser</str>
    <str name="description">
    Kühlwasser soll in einem AKW eine Überhitzung verhindern. Doch die belgischen AKW Doel und Tihange sind offenbar so brüchig, dass selbst Kühlwasser eine Gefahr für die Gebäude darstellt. Nach WDR-Informationen muss es erhitzt werden. Von J. Döschner.
    </str>
    </doc>
    <doc>
    <str name="title">CETA: Gabriel muss Wort halten!</str>
    <str name="description">
    Das Freihandelsabkommen CETA könnte schon diesen Herbst vorläufig angewendet werden – ohne Bundestagsabstimmung! Schreibt jetzt an Wirtschaftsminister Gabriel und fordert ihn auf, Wort zu halten: CETA darf ohne Zustimmung von Bundestag und Bundesrat nicht angewendet werden!
    </str>
    </doc>
    <doc>
    <str name="title">
    Sendung 13.12.2016 | SWR | Was bringt TTIP? Das Handelsabkommen auf dem Prüfstand
    </str>
    <str name="description">
    Eine Großdemonstration mit fast 250.000 Menschen in Berlin und ein handfester Streit im EU-Parlament – das Freihandelsabkommen TTIP erhitzt seit Monaten die Gemüter. Während es die einen für einen großen Fortschritt halten, wenn die Zölle zwischen der EU und den USA fallen und Standards und Normen vereinheitlicht werden, warnen die anderen davor, dass TTIP den großen Konzernen noch mehr Macht verleiht, als sie ohnehin schon haben.
    </str>
    </doc>
    <doc>
    <str name="title">
    Sauber und preiswert: der deutsche Strom wird zukunftssicher
    </str>
    <str name="description">
    Die Diskussionen um Deutschlands Strom und Strompreise sind erstaunlich. Und scheinbar findet jede Haltung zur Energiewende in irgendeiner Facette dieser Diskussion ihren Resonanzraum. Deutschland hat sich hier zu einem lehrreichen Pilotfall entwickelt.
    </str>
    </doc>
    <doc>
    <str name="title">
    Weltwirtschaft: Klimawandel birgt das größte Risiko
    </str>
    <str name="description">
    Die Weltwirtschaft ist so gefährdet wie schon lange nicht mehr. Zu diesem Ergebnis kommt eine aktuelle Risiko-Analyse des Weltwirtschaftsforums. Die größte Gefahr sehen die Experten in einem Versagen der Klimapolitik.
    </str>
    </doc>
    <doc>
    <str name="title">Schick, umweltschonend – aber untauglich</str>
    <str name="description">
    Der Staat sollte kein Geld für Kaufprämien ausgeben, sondern in die Entwicklung von Batterien und Tankstellen investieren. Ein Kommentar
    </str>
    </doc>
    <doc>
    <str name="title">
    Beitrag erneuerbarer Energien am Stromaufkommen in Deutschland
    </str>
    <str name="description">
    Im Jahr 2016 deckten erneuerbare Energien rund ein Drittel des deutschen Stromverbrauchs. Ein windschwaches Jahr und ein politisch gebremster Zuwachs bei der Photovoltaik verhinderten eine spürbare Steigerung gegenüber dem Vorjahr. Die deutschen Klimaschutzziele verkommen damit zur Farce.
    </str>
    </doc>
    <doc>
    <str name="title">
    Die gesuchte Seite wurde leider nicht gefunden (Fehlernummer 404) | DasErste.de
    </str>
    <str name="description">
    Die gesuchte Seite wurde leider nicht gefunden (Fehlernummer 404)
    </str>
    </doc>
    <doc>
    <str name="title">
    Video "Im Jahr 2525: Klima in ferner Zukunft" - W wie Wissen
    </str>
    <str name="description">
    Vertrocknete Böden, überhitzte Innenstädte, steigende Meeresspiegel: Welche Meldungen könnten die Deutschen in 500 Jahren erwarten? Wir zappen uns durch die Nachrichten der Zukunft.
    </str>
    </doc>
    <doc>
    <str name="title">
    Das Elektroauto Tesla Model 3 wurde innerhalb von 3 Tagen über 254.000 Mal reserviert
    </str>
    <str name="description">
    Das Elektroauto Tesla Model 3 kann erst seit dem 31. März 2016 reserviert werden und die ersten Auslieferungen starten erst Ende 2017 - aber bereits nach 3 Tagen wurde der Stromer über 254.000 Mal reserviert. Damit ist die Hälfte der geplanten Jahresproduktion bereits jetzt vergeben.
    </str>
    </doc>
    <doc>
    <str name="title">
    Energie-Report: Windkraft liefert in Deutschland erstmals den billigsten Strom
    </str>
    <str name="description">
    Windkraft ist in Deutschland mittlerweile die günstigste Energieart, so ein neuer Report. Auch Solar holt deutlich auf.
    </str>
    </doc>
    <doc>
    <str name="title">
    Soziale Sicherung: Telekom-Chef für bedingungsloses Grundeinkommen
    </str>
    <str name="description">
    Timotheus Höttges hält ein bedingungsloses Grundeinkommen für eine Möglichkeit, auf die zunehmende Digitalisierung zu reagieren. Und er weiß auch schon, wer das bezahlen könnte.
    </str>
    </doc>
    <doc>
    <str name="title">Stoppen wir das nächste Tschernobyl!</str>
    <str name="description">
    Deutsche Atomexperten sind besorgt: Belgien hat gerade 2 uralte, brüchige Atommeiler im Herzen Europas reaktiviert - doch heute reist die deutsche Umweltministerin nach Belgien, um diesen Wahnsinn zu stoppen. Macht mit und verbreitet die Aktion!
    </str>
    </doc>
    <doc>
    <str name="title">
    Deutschland: Aus für Diesel- und Benzinmotoren ab 2050
    </str>
    <str name="description">
    Deutschland will gemeinsam mit zwölf weiteren Staaten ab dem Jahr 2050 nur noch Fahrzeuge zulassen, die emissionsfrei fahren. Der weltweite Schadstoffausstoß soll somit um bis zu 40 Prozent gesenkt werden.
    </str>
    </doc>
    <doc>
    <str name="title">
    Unabhängige Studie: TTIP vernichtet Arbeitsplätze, erhöht Lohndruck
    </str>
    <str name="description">
    Eine unabhängige Studie hat ergeben, dass das TTIP anders als von der Bundesregierung behauptet, massiv Arbeitsplätze in Europa vernichten wird. Viele Jobs werden in das Billig-Segment abrutschen. Profitieren könnten dagegen die Kapitalvermögen.
    </str>
    </doc>
    <doc>
    <str name="title">404 - Seite nicht gefunden</str>
    <str name="description">
    Vollintegrierte PIM-, MAM-, CMS-Lösung von crossbase: Automatisierung von Print- und Onlinemedien. ✓ Zeit ✓ Kosten ✓ Anbindung ERP ✓ Datenpflege ✓ Datenbereitstellung E-Commerce, CAD/BIM ✓ Übersetzung
    </str>
    </doc>
    <doc>
    <str name="title">
    Südufer Festival - Dein Festival am Friedberger See
    </str>
    <str name="description">
    Dein Festival am Friedberger See mit Lola Marsh, Claire, Nihils, Kytes, Pool, Neufundland und vielen anderen.
    </str>
    </doc>
    <doc>
    <str name="title">Erst streichen, dann Filmnacht</str>
    <str name="description">
    Der Friedberger Jugendrat plant neue Projekte. Bei einem mangelt es allerdings noch an Teilnehmern
    </str>
    </doc>
    <doc>
    <str name="title">
    "Die Energiewende ist das beste Friedensprojekt auf der Welt"
    </str>
    <str name="description">
    Vor einigen Monaten haben wir mit drei Experten die Beeinflussung der deutschen Sicherheits- und Außenpolitik durch die Abhängigkeit von Energieimporten diskutiert –
    </str>
    </doc>
    <doc>
    <str name="title">
    Zwischen Wunsch und Wirklichkeit. Wie realistisch ist die Energiewende?
    </str>
    <str name="description">
    Erneuerbare Energie ist eines der besten Mittel gegen die Klimaerwärmung. Dazu müsste unser Energiesystem konsequent umgebaut werden. Und das ist eine gigantische Herausforderung.
    </str>
    </doc>
    </result>
    </response>

    And here is again my full process (including the part that you posted):

    <?xml version="1.0" encoding="UTF-8"?><process version="7.6.001">
    <context>
    <input/>
    <output/>
    <macros/>
    </context>
    <operator activated="true" class="process" compatibility="7.6.001" expanded="true" name="Process">
    <parameter key="logverbosity" value="init"/>
    <parameter key="random_seed" value="2001"/>
    <parameter key="send_mail" value="never"/>
    <parameter key="notification_email" value=""/>
    <parameter key="process_duration_for_mail" value="30"/>
    <parameter key="encoding" value="SYSTEM"/>
    <process expanded="true">
    <operator activated="true" class="subprocess" compatibility="7.6.001" expanded="true" height="103" name="Clustering Part" width="90" x="45" y="391">
    <process expanded="true">
    <operator activated="true" class="open_file" compatibility="7.6.001" expanded="true" height="68" name="Open File" width="90" x="45" y="442">
    <parameter key="resource_type" value="URL"/>
    </operator>
    <operator activated="true" class="advanced_file_connectors:read_xml" compatibility="7.6.001" expanded="true" height="68" name="Read XML" width="90" x="112" y="289">
    <parameter key="file" value="C:\Users\Amir Askary\My Downloads\ihre_sz_articles.xml"/>
    <parameter key="xpath_for_examples" value="//response/result/doc"/>
    <enumeration key="xpaths_for_attributes">
    <parameter key="xpath_for_attribute" value="str[1]/attribute::name"/>
    <parameter key="xpath_for_attribute" value="str[1]/text()"/>
    <parameter key="xpath_for_attribute" value="str[2]/attribute::name"/>
    <parameter key="xpath_for_attribute" value="str[2]/text()"/>
    </enumeration>
    <parameter key="use_namespaces" value="true"/>
    <list key="namespaces"/>
    <parameter key="use_default_namespace" value="false"/>
    <parameter key="parse_numbers" value="true"/>
    <parameter key="decimal_character" value="."/>
    <parameter key="grouped_digits" value="false"/>
    <parameter key="grouping_character" value=","/>
    <parameter key="date_format" value=""/>
    <list key="annotations"/>
    <parameter key="time_zone" value="SYSTEM"/>
    <parameter key="locale" value="German (Germany)"/>
    <list key="data_set_meta_data_information">
    <parameter key="0" value="str[1]/attribute::name.false.polynominal.attribute"/>
    <parameter key="1" value="title.true.text.attribute"/>
    <parameter key="2" value="str[2]/attribute::name.false.polynominal.attribute"/>
    <parameter key="3" value="description.true.text.attribute"/>
    </list>
    <parameter key="read_not_matching_values_as_missings" value="true"/>
    <parameter key="datamanagement" value="double_array"/>
    <parameter key="data_management" value="auto"/>
    </operator>
    <operator activated="true" class="split_data" compatibility="7.6.001" expanded="true" height="82" name="Split Data" width="90" x="246" y="391">
    <enumeration key="partitions">
    <parameter key="ratio" value="0.05"/>
    <parameter key="ratio" value="0.95"/>
    </enumeration>
    <parameter key="sampling_type" value="linear sampling"/>
    <parameter key="use_local_random_seed" value="false"/>
    <parameter key="local_random_seed" value="1992"/>
    </operator>
    <operator activated="true" class="generate_id" compatibility="7.6.001" expanded="true" height="82" name="Generate ID" width="90" x="313" y="238">
    <parameter key="create_nominal_ids" value="false"/>
    <parameter key="offset" value="0"/>
    </operator>
    <operator activated="true" class="text:data_to_documents" compatibility="7.5.000" expanded="true" height="68" name="Data to Documents" width="90" x="380" y="136">
    <parameter key="select_attributes_and_weights" value="true"/>
    <list key="specify_weights">
    <parameter key="title" value="4.0"/>
    <parameter key="description" value="1.0"/>
    </list>
    </operator>
    <operator activated="true" class="text:filter_documents_by_content" compatibility="7.5.000" expanded="true" height="82" name="Filter Documents (by Content)" width="90" x="581" y="289">
    <parameter key="condition" value="contains match"/>
    <parameter key="regular_expression" value="(.* nicht gefunden .*|.* unavailable .*|.* 404 .*|.* service not available .*)"/>
    <parameter key="case_sensitive" value="false"/>
    <parameter key="invert condition" value="true"/>
    </operator>
    <operator activated="true" class="text:process_documents" compatibility="7.5.000" expanded="true" height="103" name="Process Documents" width="90" x="715" y="136">
    <parameter key="create_word_vector" value="true"/>
    <parameter key="vector_creation" value="Term Frequency"/>
    <parameter key="add_meta_information" value="true"/>
    <parameter key="keep_text" value="true"/>
    <parameter key="prune_method" value="absolute"/>
    <parameter key="prune_below_percent" value="0.4"/>
    <parameter key="prune_above_percent" value="40.0"/>
    <parameter key="prune_below_absolute" value="2"/>
    <parameter key="prune_above_absolute" value="2000"/>
    <parameter key="prune_below_rank" value="0.05"/>
    <parameter key="prune_above_rank" value="0.95"/>
    <parameter key="datamanagement" value="double_sparse_array"/>
    <parameter key="data_management" value="auto"/>
    <process expanded="true">
    <operator activated="false" class="text:filter_tokens_by_pos" compatibility="7.5.000" expanded="true" height="68" name="Filter Tokens (by POS Tags)" width="90" x="447" y="493">
    <parameter key="language" value="German"/>
    <parameter key="expression" value="NE.*|NN.*|VVFIN.*|VVINF.*|VVIZU.*|VVPP.*"/>
    <parameter key="invert_filter" value="false"/>
    </operator>
    <operator activated="true" class="text:tokenize" compatibility="7.5.000" expanded="true" height="68" name="Tokenize (2)" width="90" x="45" y="187">
    <parameter key="mode" value="non letters"/>
    <parameter key="characters" value=".:"/>
    <parameter key="language" value="German"/>
    <parameter key="max_token_length" value="3"/>
    </operator>
    <operator activated="true" class="text:filter_tokens_by_content" compatibility="7.5.000" expanded="true" height="68" name="Filter Tokens (2)" width="90" x="179" y="289">
    <parameter key="condition" value="matches"/>
    <parameter key="regular_expression" value="(thing|can|your|her|you|are|that|the|welt|spiegel|online|to|of|and|on|over|for|with|as|the|a|ab|aber|ach|acht|achte|achten|achter|achtes|ag|alle|allein|allem|allen|aller|allerdings|alles|allgemeinen|als|also|am|an|ander|andere|anderem|anderen|anderer|anderes|anderm|andern|anderr|anders|au|auch|auf|aus|ausser|ausserdem|außer|außerdem|b|bald|bei|beide|beiden|beim|beispiel|bekannt|bereits|besonders|besser|besten|bin|bis|bisher|bist|c|d|d.h|da|dabei|dadurch|dafür|dagegen|daher|dahin|dahinter|damals|damit|danach|daneben|dank|dann|daran|darauf|daraus|darf|darfst|darin|darum|darunter|darüber|das|dasein|daselbst|dass|dasselbe|davon|davor|dazu|dazwischen|daß|dein|deine|deinem|deinen|deiner|deines|dem|dementsprechend|demgegenüber|demgemäss|demgemäß|demselben|demzufolge|den|denen|denn|denselben|der|deren|derer|derjenige|derjenigen|dermassen|dermaßen|derselbe|derselben|des|deshalb|desselben|dessen|deswegen|dich|die|diejenige|diejenigen|dies|diese|dieselbe|dieselben|diesem|diesen|dieser|dieses|dir|doch|dort|drei|drin|dritte|dritten|dritter|drittes|du|durch|durchaus|durfte|durften|dürfen|dürft|e|eben|ebenso|ehrlich|ei|ei,|eigen|eigene|eigenen|eigener|eigenes|ein|einander|eine|einem|einen|einer|eines|einig|einige|einigem|einigen|einiger|einiges|einmal|eins|elf|en|ende|endlich|entweder|er|ernst|erst|erste|ersten|erster|erstes|es|etwa|etwas|euch|euer|eure|eurem|euren|eurer|eures|f|folgende|früher|fünf|fünfte|fünften|fünfter|fünftes|für|g|gab|ganz|ganze|ganzen|ganzer|ganzes|gar|gedurft|gegen|gegenüber|gehabt|gehen|geht|gekannt|gekonnt|gemacht|gemocht|gemusst|genug|gerade|gern|gesagt|geschweige|gewesen|gewollt|geworden|gibt|ging|gleich|gott|gross|grosse|grossen|grosser|grosses|groß|große|großen|großer|großes|gut|gute|guter|gutes|h|hab|habe|haben|habt|hast|hat|hatte|hatten|hattest|hattet|heisst|her|heute|hier|hin|hinter|hoch|hätte|hätten|i|ich|ihm|ihn|ihnen|ihr|ihre|ihrem|ihren|ihrer|ihres|im|immer|in|indem|infolgedessen|ins|irgend|ist|j|ja|jahr|jahre|jahren|je|jede|jedem|jeden|jeder|jedermann|jedermanns|jedes|jedoch|jemand|jemandem|jemanden|jene|jenem|jenen|jener|jenes|jetzt|k|kam|kann|kannst|kaum|kein|keine|keinem|keinen|keiner|keines|kleine|kleinen|kleiner|kleines|kommen|kommt|konnte|konnten|kurz|können|könnt|könnte|l|lang|lange|leicht|leide|lieber|los|m|machen|macht|machte|mag|magst|mahn|mal|man|manche|manchem|manchen|mancher|manches|mann|mehr|mein|meine|meinem|meinen|meiner|meines|mensch|menschen|mich|mir|mit|mittel|mochte|mochten|morgen|muss|musst|musste|mussten|muß|mußt|möchte|mögen|möglich|mögt|müssen|müsst|müßt|n|na|nach|nachdem|nahm|natürlich|neben|nein|neue|neuen|neun|neunte|neunten|neunter|neuntes|nicht|nichts|nie|niemand|niemandem|niemanden|noch|nun|nur|o|ob|oben|oder|offen|oft|ohne|ordnung|p|q|r|recht|rechte|rechten|rechter|rechtes|richtig|rund|s|sa|sache|sagt|sagte|sah|satt|schlecht|schluss|schon|sechs|sechste|sechsten|sechster|sechstes|sehr|sei|seid|seien|sein|seine|seinem|seinen|seiner|seines|seit|seitdem|selbst|sich|sie|sieben|siebente|siebenten|siebenter|siebentes|sind|so|solang|solche|solchem|solchen|solcher|solches|soll|sollen|sollst|sollt|sollte|sollten|sondern|sonst|soweit|sowie|später|startseite|statt|steht|suche|t|tag|tage|tagen|tat|teil|tel|tritt|trotzdem|tun|u|uhr|um|und|und?|uns|unse|unsem|unsen|unser|unsere|unserer|unses|unter|v|vergangenen|viel|viele|vielem|vielen|vielleicht|vier|vierte|vierten|vierter|viertes|vom|von|vor|w|wahr?|wann|war|waren|warst|wart|warum|was|weg|wegen|weil|weit|weiter|weitere|weiteren|weiteres|welche|welchem|welchen|welcher|welches|wem|wen|wenig|wenige|weniger|weniges|wenigstens|wenn|wer|werde|werden|werdet|weshalb|wessen|wie|wieder|wieso|will|willst|wir|wird|wirklich|wirst|wissen|wo|woher|wohin|wohl|wollen|wollt|wollte|wollten|worden|wurde|wurden|während|währenddem|währenddessen|wäre|würde|würden|x|y|z|z.b|zehn|zehnte|zehnten|zehnter|zehntes|zeit|zu|zuerst|zugleich|zum|zunächst|zur|zurück|zusammen|zwanzig|zwar|zwei|zweite|zweiten|zweiter|zweites|zwischen|zwölf|über|überhaupt|übrigens)"/>
    <parameter key="case_sensitive" value="false"/>
    <parameter key="invert condition" value="true"/>
    </operator>
    <operator activated="true" class="text:filter_stopwords_german" compatibility="7.5.000" expanded="true" height="68" name="Filter Stopwords (2)" width="90" x="313" y="187">
    <parameter key="stop_word_list" value="Standard"/>
    </operator>
    <operator activated="true" class="text:filter_by_length" compatibility="7.5.000" expanded="true" height="68" name="Filter Tokens (3)" width="90" x="514" y="238">
    <parameter key="min_chars" value="3"/>
    <parameter key="max_chars" value="999"/>
    </operator>
    <operator activated="true" class="text:stem_german" compatibility="7.5.000" expanded="true" height="68" name="Stem (2)" width="90" x="782" y="187"/>
    <operator activated="true" class="text:generate_n_grams_terms" compatibility="7.5.000" expanded="true" height="68" name="Generate n-Grams (Terms)" width="90" x="983" y="136">
    <parameter key="max_length" value="2"/>
    </operator>
    <connect from_port="document" to_op="Tokenize (2)" to_port="document"/>
    <connect from_op="Tokenize (2)" from_port="document" to_op="Filter Tokens (2)" to_port="document"/>
    <connect from_op="Filter Tokens (2)" from_port="document" to_op="Filter Stopwords (2)" to_port="document"/>
    <connect from_op="Filter Stopwords (2)" from_port="document" to_op="Filter Tokens (3)" to_port="document"/>
    <connect from_op="Filter Tokens (3)" from_port="document" to_op="Stem (2)" to_port="document"/>
    <connect from_op="Stem (2)" from_port="document" to_op="Generate n-Grams (Terms)" to_port="document"/>
    <connect from_op="Generate n-Grams (Terms)" 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="7.6.001" expanded="true" height="82" name="Clustering" width="90" x="916" y="136">
    <parameter key="add_cluster_attribute" value="true"/>
    <parameter key="add_as_label" value="false"/>
    <parameter key="remove_unlabeled" value="false"/>
    <parameter key="k" value="10"/>
    <parameter key="max_runs" value="10"/>
    <parameter key="determine_good_start_values" value="false"/>
    <parameter key="measure_types" value="BregmanDivergences"/>
    <parameter key="mixed_measure" value="MixedEuclideanDistance"/>
    <parameter key="nominal_measure" value="NominalDistance"/>
    <parameter key="numerical_measure" value="EuclideanDistance"/>
    <parameter key="divergence" value="SquaredEuclideanDistance"/>
    <parameter key="kernel_type" value="radial"/>
    <parameter key="kernel_gamma" value="1.0"/>
    <parameter key="kernel_sigma1" value="1.0"/>
    <parameter key="kernel_sigma2" value="0.0"/>
    <parameter key="kernel_sigma3" value="2.0"/>
    <parameter key="kernel_degree" value="3.0"/>
    <parameter key="kernel_shift" value="1.0"/>
    <parameter key="kernel_a" value="1.0"/>
    <parameter key="kernel_b" value="0.0"/>
    <parameter key="max_optimization_steps" value="100"/>
    <parameter key="use_local_random_seed" value="false"/>
    <parameter key="local_random_seed" value="1992"/>
    </operator>
    <connect from_op="Open File" from_port="file" to_op="Read XML" to_port="file"/>
    <connect from_op="Read XML" from_port="output" to_op="Split Data" to_port="example set"/>
    <connect from_op="Split Data" from_port="partition 1" to_op="Generate ID" to_port="example set input"/>
    <connect from_op="Generate ID" from_port="example set output" to_op="Data to Documents" to_port="example set"/>
    <connect from_op="Data to Documents" from_port="documents" to_op="Filter Documents (by Content)" to_port="documents 1"/>
    <connect from_op="Filter Documents (by Content)" from_port="documents" to_op="Process Documents" to_port="documents 1"/>
    <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="out 1"/>
    <connect from_op="Clustering" from_port="clustered set" to_port="out 2"/>
    <portSpacing port="source_in 1" spacing="0"/>
    <portSpacing port="sink_out 1" spacing="0"/>
    <portSpacing port="sink_out 2" spacing="0"/>
    <portSpacing port="sink_out 3" spacing="0"/>
    </process>
    </operator>
    <operator activated="true" class="filter_example_range" compatibility="7.6.001" expanded="true" height="82" name="Filter Example Range" width="90" x="112" y="187">
    <parameter key="first_example" value="1"/>
    <parameter key="last_example" value="100"/>
    <parameter key="invert_filter" value="false"/>
    </operator>
    <operator activated="true" class="set_role" compatibility="7.6.001" expanded="true" height="82" name="Set Role" width="90" x="179" y="34">
    <parameter key="attribute_name" value="cluster"/>
    <parameter key="target_role" value="label"/>
    <list key="set_additional_roles"/>
    </operator>
    <operator activated="true" class="nominal_to_text" compatibility="7.6.001" expanded="true" height="82" name="Nominal to Text" width="90" x="313" y="34">
    <parameter key="attribute_filter_type" value="single"/>
    <parameter key="attribute" value="cluster"/>
    <parameter key="attributes" value=""/>
    <parameter key="use_except_expression" value="false"/>
    <parameter key="value_type" value="nominal"/>
    <parameter key="use_value_type_exception" value="false"/>
    <parameter key="except_value_type" value="file_path"/>
    <parameter key="block_type" value="single_value"/>
    <parameter key="use_block_type_exception" value="false"/>
    <parameter key="except_block_type" value="single_value"/>
    <parameter key="invert_selection" value="false"/>
    <parameter key="include_special_attributes" value="true"/>
    </operator>
    <operator activated="true" class="text:process_document_from_data" compatibility="7.5.000" expanded="true" height="82" name="Process Documents from Data" width="90" x="447" y="34">
    <parameter key="create_word_vector" value="true"/>
    <parameter key="vector_creation" value="Term Frequency"/>
    <parameter key="add_meta_information" value="true"/>
    <parameter key="keep_text" value="true"/>
    <parameter key="prune_method" value="none"/>
    <parameter key="prune_below_percent" value="3.0"/>
    <parameter key="prune_above_percent" value="30.0"/>
    <parameter key="prune_below_rank" value="0.05"/>
    <parameter key="prune_above_rank" value="0.95"/>
    <parameter key="datamanagement" value="double_sparse_array"/>
    <parameter key="data_management" value="auto"/>
    <parameter key="select_attributes_and_weights" value="false"/>
    <list key="specify_weights"/>
    <process expanded="true">
    <operator activated="true" class="text:transform_cases" compatibility="7.5.000" expanded="true" height="68" name="Transform Cases" width="90" x="112" y="34">
    <parameter key="transform_to" value="lower case"/>
    </operator>
    <operator activated="true" class="text:tokenize" compatibility="7.5.000" expanded="true" height="68" name="Tokenize" width="90" x="313" y="34">
    <parameter key="mode" value="non letters"/>
    <parameter key="characters" value=".:"/>
    <parameter key="expression" value="\s"/>
    <parameter key="language" value="English"/>
    <parameter key="max_token_length" value="3"/>
    </operator>
    <operator activated="true" class="text:filter_stopwords_german" compatibility="7.5.000" expanded="true" height="68" name="Filter Stopwords (German)" width="90" x="480" y="34">
    <parameter key="stop_word_list" value="Standard"/>
    </operator>
    <operator activated="true" class="text:filter_by_length" compatibility="7.5.000" expanded="true" height="68" name="Filter Tokens (by Length)" width="90" x="648" y="34">
    <parameter key="min_chars" value="2"/>
    <parameter key="max_chars" value="25"/>
    </operator>
    <connect from_port="document" to_op="Transform Cases" to_port="document"/>
    <connect from_op="Transform Cases" from_port="document" to_op="Tokenize" to_port="document"/>
    <connect from_op="Tokenize" from_port="document" to_op="Filter Stopwords (German)" to_port="document"/>
    <connect from_op="Filter Stopwords (German)" 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="text:wordlist_to_data" compatibility="7.5.000" expanded="true" height="82" name="WordList to Data" width="90" x="581" y="34"/>
    <operator activated="true" class="select_attributes" compatibility="7.6.001" expanded="true" height="82" name="Select Attributes" width="90" x="581" y="187">
    <parameter key="attribute_filter_type" value="subset"/>
    <parameter key="attribute" value=""/>
    <parameter key="attributes" value="in documents|total"/>
    <parameter key="use_except_expression" value="false"/>
    <parameter key="value_type" value="attribute_value"/>
    <parameter key="use_value_type_exception" value="false"/>
    <parameter key="except_value_type" value="time"/>
    <parameter key="block_type" value="attribute_block"/>
    <parameter key="use_block_type_exception" value="false"/>
    <parameter key="except_block_type" value="value_matrix_row_start"/>
    <parameter key="invert_selection" value="true"/>
    <parameter key="include_special_attributes" value="false"/>
    </operator>
    <operator activated="true" class="de_pivot" compatibility="7.6.001" expanded="true" height="82" name="De-Pivot" width="90" x="715" y="187">
    <list key="attribute_name">
    <parameter key="keyword_count" value="in class.*"/>
    </list>
    <parameter key="index_attribute" value="cluster_name"/>
    <parameter key="create_nominal_index" value="true"/>
    <parameter key="keep_missings" value="false"/>
    </operator>
    <operator activated="true" class="concurrency:loop_values" compatibility="7.6.001" expanded="true" height="82" name="Loop Values" width="90" x="581" y="391">
    <parameter key="attribute" value="cluster_name"/>
    <parameter key="iteration_macro" value="loop_value"/>
    <parameter key="reuse_results" value="false"/>
    <parameter key="enable_parallel_execution" value="true"/>
    <process expanded="true">
    <operator activated="true" class="filter_examples" compatibility="7.6.001" expanded="true" height="103" name="Filter Examples" width="90" x="45" y="34">
    <parameter key="parameter_expression" value=""/>
    <parameter key="condition_class" value="custom_filters"/>
    <parameter key="invert_filter" value="false"/>
    <list key="filters_list">
    <parameter key="filters_entry_key" value="cluster_name.equals.%{loop_value}"/>
    </list>
    <parameter key="filters_logic_and" value="true"/>
    <parameter key="filters_check_metadata" value="true"/>
    </operator>
    <operator activated="true" class="sort" compatibility="7.6.001" expanded="true" height="82" name="Sort" width="90" x="179" y="34">
    <parameter key="attribute_name" value="keyword_count"/>
    <parameter key="sorting_direction" value="decreasing"/>
    </operator>
    <operator activated="true" class="filter_example_range" compatibility="7.6.001" expanded="true" height="82" name="Filter Example Range (2)" width="90" x="313" y="34">
    <parameter key="first_example" value="1"/>
    <parameter key="last_example" value="3"/>
    <parameter key="invert_filter" value="false"/>
    </operator>
    <operator activated="true" class="aggregate" compatibility="7.6.001" expanded="true" height="82" name="Aggregate" width="90" x="447" y="34">
    <parameter key="use_default_aggregation" value="false"/>
    <parameter key="attribute_filter_type" value="all"/>
    <parameter key="attribute" value=""/>
    <parameter key="attributes" value=""/>
    <parameter key="use_except_expression" value="false"/>
    <parameter key="value_type" value="attribute_value"/>
    <parameter key="use_value_type_exception" value="false"/>
    <parameter key="except_value_type" value="time"/>
    <parameter key="block_type" value="attribute_block"/>
    <parameter key="use_block_type_exception" value="false"/>
    <parameter key="except_block_type" value="value_matrix_row_start"/>
    <parameter key="invert_selection" value="false"/>
    <parameter key="include_special_attributes" value="false"/>
    <parameter key="default_aggregation_function" value="average"/>
    <list key="aggregation_attributes">
    <parameter key="word" value="concatenation"/>
    </list>
    <parameter key="group_by_attributes" value="cluster_name"/>
    <parameter key="count_all_combinations" value="false"/>
    <parameter key="only_distinct" value="false"/>
    <parameter key="ignore_missings" value="true"/>
    </operator>
    <operator activated="true" class="rename" compatibility="7.6.001" expanded="true" height="82" name="Rename" width="90" x="581" y="34">
    <parameter key="old_name" value="concat(word)"/>
    <parameter key="new_name" value="new_name"/>
    <list key="rename_additional_attributes">
    <parameter key="cluster_name" value="old_name"/>
    </list>
    </operator>
    <operator activated="true" class="replace" compatibility="7.6.001" expanded="true" height="82" name="Replace" width="90" x="715" y="34">
    <parameter key="attribute_filter_type" value="single"/>
    <parameter key="attribute" value="new_name"/>
    <parameter key="attributes" value=""/>
    <parameter key="use_except_expression" value="false"/>
    <parameter key="value_type" value="nominal"/>
    <parameter key="use_value_type_exception" value="false"/>
    <parameter key="except_value_type" value="file_path"/>
    <parameter key="block_type" value="single_value"/>
    <parameter key="use_block_type_exception" value="false"/>
    <parameter key="except_block_type" value="single_value"/>
    <parameter key="invert_selection" value="false"/>
    <parameter key="include_special_attributes" value="false"/>
    <parameter key="replace_what" value="\|"/>
    <parameter key="replace_by" value="_"/>
    </operator>
    <connect from_port="input 1" to_op="Filter Examples" to_port="example set input"/>
    <connect from_op="Filter Examples" from_port="example set output" to_op="Sort" to_port="example set input"/>
    <connect from_op="Sort" from_port="example set output" to_op="Filter Example Range (2)" to_port="example set input"/>
    <connect from_op="Filter Example Range (2)" from_port="example set output" to_op="Aggregate" to_port="example set input"/>
    <connect from_op="Aggregate" from_port="example set output" to_op="Rename" to_port="example set input"/>
    <connect from_op="Rename" from_port="example set output" to_op="Replace" to_port="example set input"/>
    <connect from_op="Replace" from_port="example set output" to_port="output 1"/>
    <portSpacing port="source_input 1" spacing="0"/>
    <portSpacing port="source_input 2" spacing="0"/>
    <portSpacing port="sink_output 1" spacing="0"/>
    <portSpacing port="sink_output 2" spacing="0"/>
    </process>
    </operator>
    <operator activated="true" class="append" compatibility="7.6.001" expanded="true" height="82" name="Append" width="90" x="715" y="391">
    <parameter ke
  • kaymankayman Member Posts: 662 Unicorn

    You were very close :-)

     

    One more thing you need to do, in the Set role operator also change the text to regular, and then it will work. If you don't the text file is considered a special attribute and it is ignored by your nominal to text operator.

     

    Then you get something like this :

     

    big_solarify_www in class (cluster_0)
    freihandel_bundestagswahl_bundesumweltministeri in class (cluster_2)
    elektroauto_fossil_verbrenn in class (cluster_1)
    ttt_the_angst in class (cluster_3)
    energiew_alt_fell in class (cluster_5)
    energiew_fossil_ausbau in class (cluster_7)
    trump_brem_klimaforsch in class (cluster_9)
    clinto_perex_wahl in class (cluster_6)
    klimawandel_anthropog_eis in class (cluster_8)
    pari_deutschla_erwarmung in class (cluster_4)

     

     

Sign In or Register to comment.