我需要为训练数据中的每个令牌计算频率,并制作一个列表,其中列出了至少具有N次频率的令牌。 要将数据集拆分为训练集和测试集,我按照以下方式操作:
X = vectorizer.fit_transform(df['Text'].replace(np.NaN, ""))
y=df['Label']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.30, stratify=y)
如果“文本”列包含句子,例如:
Text
Show some code
Describe what you've tried
Have a non-programming question?
More helpful links
为了提取所有的令牌,我按照以下步骤进行:
import pandas as pd
from nltk.tokenize import word_tokenize
X_train['tokenized_text'] = X_train.Text.apply(lambda row: word_tokenize(row))
这让我只能本地获得token,而不能全局获得。为了制作一个至少频率等于N
的token列表,我应该拥有所有列表并计算所有行的数量。
我的困难在于计算整个列中token的频率。
请告诉我如何计算这些tokens?
更新:
以下代码运行良好:
df.Text.str.split(expand=True).stack().value_counts()
然而我不知道如何提取所有出现次数大于15的单词/标记。