gpt4 book ai didi

python - 计算文档中的 token

转载 作者:行者123 更新时间:2023-12-03 16:58:46 26 4
gpt4 key购买 nike

我需要计算训练数据中每个标记的频率,列出频率至少等于 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列包含句子,例如
Text
Show some code
Describe what you've tried
Have a non-programming question?
More helpful links
提取所有 token 我做了如下:
import pandas as pd
from nltk.tokenize import word_tokenize

X_train['tokenized_text'] = X_train.Text.apply(lambda row: word_tokenize(row))
这给了我本地 token ,而不是全局 token 。我应该拥有所有列表并计算所有行,以便列出频率至少等于 N 的标记列表。 .
我的困难在于计算所有列中 token 的频率。
你能告诉我如何计算这些 token 吗?
更新:
以下代码工作正常:
df.Text.str.split(expand=True).stack().value_counts()
但是,例如,我不知道如何提取计数 > 15 的所有单词/标记。

最佳答案

假设你说以下工作正常

s = df.Text.str.split(expand=True).stack().value_counts()
然后你可以做
s[s>=15].index
获得至少 15 的 token 计数。
但是,第一行没有给出与 nltk.word_tokenize 相同的标记化。 .如果您想要后者的输出,您可以将第一行替换为:
s = df.Text.apply(lambda row: word_tokenize(row)).explode().value_counts()
它从您的示例数据中提供以下内容:
Have               1
you 1
what 1
a 1
Describe 1
've 1
non-programming 1
tried 1
some 1
code 1
? 1
links 1
Show 1
helpful 1
More 1
question 1
Name: Text, dtype: int64

关于python - 计算文档中的 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64408817/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com