Dies ist der Code, den ich gerade habe, die csvfile, die ich verwende, hat zwei Spalten, eine mit dem Text und eine mit der Nummer der Konversation, die es gehört. Jetzt habe ich es geschafft, die verschiedenen Ngrams aus dem Text zu bekommen, aber ich möchte auch die Anzahl der Konversationen mit dem Ngram verknüpft haben. Wenn also ein Ngram x Mal erscheint, möchte ich sehen, in welchen Konversationen es erscheint. Wie kann ich das tun?Wie füge ich zusätzliche Spalte in Dataframe nach Ngram-Zählung
import pandas as pd
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
df = pd.read_csv("F:/textclustering/data/filteredtext1.csv", encoding="iso-8859-1" ,low_memory=False)
document = df['Data']
vectorizer = CountVectorizer(ngram_range=(2, 2))
X = vectorizer.fit_transform(document)
matrix_terms = np.array(vectorizer.get_feature_names())
matrix_freq = np.asarray(X.sum(axis=0)).ravel()
terms = vectorizer.get_feature_names()
freqs = X.sum(axis=0).A1
dictionary = dict(zip(terms, freqs))
df = pd.DataFrame(dictionary,index=[0]).T.reindex()
df.to_csv("F:/textclustering/data/terms2.csv", sep=',', na_rep="none")
Eingang CSV
text, id
example text is great, 1
this is great, 2
example text is great, 3
gewünschte Ausgabe (oder etwas in der Nähe dieses)
ngram, count, id
example text, 2, [1,3]
text is, 2, [1,3]
is great, 3, [1,2,3]
this is, 1, [1]