diff --git a/src/app/components/creator/_dialogs/room-edit/room-edit.component.html b/src/app/components/creator/_dialogs/room-edit/room-edit.component.html
index 9ee31f0d57d6a590ae5d4fe5040bc76c271b6f9e..eec27e215f195e915910169e9f5507ac8773e545 100644
--- a/src/app/components/creator/_dialogs/room-edit/room-edit.component.html
+++ b/src/app/components/creator/_dialogs/room-edit/room-edit.component.html
@@ -55,10 +55,10 @@
           [data]="editRoom.description"></markdown>
       </mat-tab>
     </mat-tab-group>
-    <div fxLayoutAlign="center center">
+    <div fxLayout="column">
       <mat-slide-toggle [(ngModel)]= "check">{{ 'room-page.block' | translate }}</mat-slide-toggle>
     </div>
-    <div fxLayoutAlign="center center" fxLayout="column">
+    <div fxLayout="column">
       <mat-slide-toggle (change)="showMessage('words-will-be-overwritten', $event.checked)" [(ngModel)]= "profanityCheck">
         {{ 'room-page.profanity-filter' | translate }}
       </mat-slide-toggle>
diff --git a/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.html b/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.html
index 60c50bea9930bcd1497388277d9607e54c3a0056..ebec71a8ccd318e492e9e9f50d85be7fadf7ef87 100644
--- a/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.html
+++ b/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.html
@@ -28,13 +28,13 @@
           </mat-radio-group>
         </mat-card>
 
-        <mat-card style="background: none;">
+        <mat-card style="background: none; margin-bottom: 10px;">
           <mat-slide-toggle [(ngModel)]="considerVotes">
             {{'topic-cloud-dialog.consider-votes' | translate}}
           </mat-slide-toggle>
         </mat-card>
         <div *ngIf="isCreatorOrMod">
-          <mat-card style="background: none;">
+          <mat-card style="background: none; margin-bottom: 10px;">
             <mat-slide-toggle (change)="showMessage('words-will-be-overwritten', $event.checked)"
                               [(ngModel)]="profanityFilter">
               {{'topic-cloud-dialog.profanity' | translate}}
@@ -137,7 +137,7 @@
             </mat-accordion>
 
           </mat-card>
-          <mat-card style="background: none;">
+          <mat-card style="background: none; margin-bottom: 10px;">
             <mat-slide-toggle [(ngModel)]="blacklistIsActive">
               {{'topic-cloud-dialog.hide-blacklist-words' | translate}}
             </mat-slide-toggle>
@@ -216,7 +216,7 @@
               </div>
             </mat-expansion-panel>
           </div>
-          <mat-expansion-panel class="color-background">
+          <mat-expansion-panel class="color-background margin-bottom">
             <mat-expansion-panel-header class="color-background">
               <mat-panel-title>
                 Spacy labels
@@ -263,7 +263,7 @@
         </mat-accordion>
 
         <mat-accordion>
-          <mat-expansion-panel class="color-background">
+          <mat-expansion-panel class="color-background margin-top">
             <mat-expansion-panel-header class="color-background">
               <mat-panel-title [ngClass]="{'animation-blink': isTopicRequirementActive()}">
                 {{'topic-cloud-dialog.topic-requirement-title' | translate}}
@@ -379,10 +379,9 @@
 
     <mat-accordion>
       <mat-expansion-panel class="color-surface" (opened)="panelOpenState = true"
-                           (closed)="panelOpenState = edit = false"
-                           *ngFor="let keyword of (searchMode ? filteredKeywords : keywords); let i = index"
-                           [attr.data-index]="i"
-                           matTooltip="{{'topic-cloud-dialog.'+(keyword.keywordType === 0?'keyword-from-spacy':'keyword-from-questioner') | translate}}">
+        (closed)="panelOpenState = edit = false"
+        *ngFor="let keyword of (searchMode ? filteredKeywords : keywords); let i = index" [attr.data-index]="i"
+        matTooltip="{{'topic-cloud-dialog.'+(keyword.keywordType === 2?'Keyword-from-both':(keyword.keywordType === 0?'keyword-from-spacy':'keyword-from-questioner')) | translate}}">
         <mat-expansion-panel-header class="color-surface">
           <mat-panel-title>
             {{profanityFilter ? keyword.keywordWithoutProfanity : keyword.keyword}}
diff --git a/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.ts b/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.ts
index 387ec84e6c1178d2d6b00538cb86d2c455a583e9..4bee097f4e3e045fbb662018132ab5885b1023b0 100644
--- a/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.ts
+++ b/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.ts
@@ -144,6 +144,13 @@ export class TopicCloudAdministrationComponent implements OnInit, OnDestroy {
           existingKey.comments.push(comment);
         }
       } else {
+        if (this.keywordORfulltext === KeywordOrFulltext[KeywordOrFulltext.both]) {
+          if (comment.keywordsFromQuestioner.includes(_keyword) && comment.keywordsFromSpacy.includes(_keyword)) {
+            _keywordType = KeywordType.fromBoth;
+          } else {
+            _keywordType = comment.keywordsFromQuestioner.includes(_keyword) ? KeywordType.fromQuestioner : KeywordType.fromSpacy;
+          }
+        }
         const keyword: Keyword = {
           keyword: _keyword,
           keywordType: _keywordType,
@@ -205,6 +212,7 @@ export class TopicCloudAdministrationComponent implements OnInit, OnDestroy {
         if (this.searchMode) {
           this.searchKeyword();
         }
+        this.refreshKeywords();
       }
     });
   }
@@ -508,6 +516,7 @@ export class TopicCloudAdministrationComponent implements OnInit, OnDestroy {
 
   getFilteredProfanity(): string {
     if (this.testProfanityWord) {
+      // eslint-disable-next-line max-len
       return this.profanityFilterService.filterProfanityWords(this.testProfanityWord, this.censorPartialWordsCheck, this.censorLanguageSpecificCheck, this.testProfanityLanguage);
     } else {
       return '';
@@ -529,6 +538,7 @@ export interface Data {
 
 enum KeywordType {
   fromSpacy = 0,
-  fromQuestioner = 1
+  fromQuestioner = 1,
+  fromBoth = 2
 }
 
diff --git a/src/assets/i18n/creator/de.json b/src/assets/i18n/creator/de.json
index d6183d46cba972189ee6996e4dba09cc98322f47..b37128502f219c238b9a68f4a6b6a58a398aff03 100644
--- a/src/assets/i18n/creator/de.json
+++ b/src/assets/i18n/creator/de.json
@@ -409,6 +409,7 @@
     "partial-words-will-be-filtered": "Vulgäre Teilwörter auch filtern",
     "keyword-from-spacy": "Stichwort von spaCy",
     "keyword-from-questioner": "Stichwort vom Fragensteller",
+    "Keyword-from-both": "Stichwort vom Fragensteller und spaCy",
     "test-profanity": "Profanität testen",
     "word": "Wort",
     "word-is-profanity": "Wort ist profan",
@@ -423,6 +424,14 @@
     "topic-requirement-begin-datetime": "Früheste Frage",
     "topic-requirement-end-datetime": "Letzte Frage"
   },
+  "topic-cloud-confirm-dialog": {
+    "cancel": "Abbrechen",
+    "delete": "Löschen",
+    "merge": "Zusammenfügen",
+    "delete-message": "Möchten Sie das Thema wirklich löschen",
+    "merge-message": "Stichwort existiert schon, möchten Sie die beiden Stichworte zusammenfügen",
+    "confirm": "Sind Sie sicher?"
+  },
   "dialog-comment": {
     "read-more": "Mehr lesen",
     "read-less": "Weniger lesen"
diff --git a/src/assets/i18n/creator/en.json b/src/assets/i18n/creator/en.json
index 7cd7b0965a2e980acb3f477288d72e2a41699c28..cd1ac29e3006ad899594025764fc315de58d50cd 100644
--- a/src/assets/i18n/creator/en.json
+++ b/src/assets/i18n/creator/en.json
@@ -417,6 +417,7 @@
     "partial-words-will-be-filtered": "Profane partial words will be also filtered",
     "keyword-from-spacy": "Keyword from spaCy",
     "keyword-from-questioner": "Keyword from questioner",
+    "Keyword-from-both": "Keyword from questioner and spaCy",
     "test-profanity": "Test profanity",
     "word": "word",
     "word-is-profanity": "Word is profane",
@@ -431,6 +432,14 @@
     "topic-requirement-begin-datetime": "Earliest comment",
     "topic-requirement-end-datetime": "Last comment"
   },
+  "topic-cloud-confirm-dialog":{
+    "cancel": "Cancel",
+    "delete": "Delete",
+    "merge": "Merge",
+    "delete-message": "Do you really want to delete the topic",
+    "merge-message": "Keyword already exists, do you want to merge both keywords",
+    "confirm": "Are you sure?"
+  },
   "dialog-comment": {
     "read-more": "read more",
     "read-less": "read less"
diff --git a/src/assets/i18n/participant/de.json b/src/assets/i18n/participant/de.json
index 7f6f54b03039849fe50c53a1930ec54bab7a804a..f93a0d4001795f02b900f4422c6b732ff969201c 100644
--- a/src/assets/i18n/participant/de.json
+++ b/src/assets/i18n/participant/de.json
@@ -292,7 +292,8 @@
     "keyword-counter": "Anzahl der Themen",
     "sort": "Sortieren",
     "keyword-from-spacy": "Stichwort von spaCy",
-    "keyword-from-questioner": "Stichwort vom Fragensteller",
+    "keyword-from-questioner": "Stichwort vom Fragesteller",
+    "Keyword-from-both": "Stichwort vom Fragensteller und spaCy",
     "test-profanity": "Profanität testen",
     "word": "Wort",
     "word-is-profanity": "Wort ist profan",
@@ -307,14 +308,6 @@
     "topic-requirement-begin-datetime": "Früheste Frage",
     "topic-requirement-end-datetime": "Letzte Frage"
   },
-  "topic-cloud-confirm-dialog": {
-    "cancel": "Abbrechen",
-    "delete": "Löschen",
-    "merge": "Zusammenfügen",
-    "delete-message": "Willst du das Thema wirklich löschen?",
-    "merge-message": "Stichwort existiert schon, willst du die beiden Stichwörter zusammenfügen?",
-    "confirm": "Bist du sicher?"
-  },
   "dialog-comment": {
     "read-more": "Mehr lesen",
     "read-less": "Weniger lesen"
diff --git a/src/assets/i18n/participant/en.json b/src/assets/i18n/participant/en.json
index 1c9625ed88fca36bf447dc7057cf4e02e64ae6f9..8efe1c76fadec2ccd994422af3658ad6f3489074 100644
--- a/src/assets/i18n/participant/en.json
+++ b/src/assets/i18n/participant/en.json
@@ -299,6 +299,7 @@
     "sort": "Sort",
     "keyword-from-spacy": "Keyword from spaCy",
     "keyword-from-questioner": "Keyword from questioner",
+    "Keyword-from-both": "Keyword from questioner and spaCy",
     "test-profanity": "Test profanity",
     "word": "word",
     "word-is-profanity": "Word is profane",
@@ -313,14 +314,6 @@
     "topic-requirement-begin-datetime": "Earliest comment",
     "topic-requirement-end-datetime": "Last comment"
   },
-  "topic-cloud-confirm-dialog":{
-    "cancel": "Cancel",
-    "delete": "Delete",
-    "merge": "Merge",
-    "delete-message": "Do you really want to delete the topic",
-    "merge-message": "Keyword already exists, do you want to merge both keywords",
-    "confirm": "Are you sure?"
-  },
   "dialog-comment":{
     "read-more": "Read more",
     "read-less": "Read less"