从 TFIDF 矩阵 (pandas) 逐句检索每个单词的匹配 TFIDF
Retrieve the matching TFIDF of each words by sentence from a TFIDF matrix (pandas)
我的第一个数据框包含我标记化的句子,第二个是每个句子中每个单词的所有 TFIDF 的矩阵。
我正在尝试创建一个新列,其中仅存储句子中单词的 TFIDF。我该怎么做?
标记句子 table
Index
Tokenized_string
1
[word1,word2,word3]
2
[word1,word3,word4]
Tfidf Table
Index
Word1
Word2
...
1
0.03
0.06
...
2
0.5
0.5
...
我正在尝试创建的 table
Index
Tokenized_string
TFIDF of each word
1
[word1,word2,word3]
[0.03,0.06,0.1]
2
[word1,word3,word4]
[0.5,0.4,0.2]
在我的示例中创建数据帧:
import pandas as pd
df = pd.DataFrame({ 'Tokenized_string':
[['word1','word2','word3'],
['word1','word3','word4']]
})
df_2 = pd.DataFrame({ 'Tokenized_string':
[['word1','word2','word3'],
['word1','word3','word4']],
'TFIDF of each word':
[[0.03,0.06,0.1],
[0.5,0.4,0.2]]})
您可以通过以下方式做到这一点。
下面以tfidf_df
为例
tfidf_df = pd.DataFrame({
'Word1': [0.03, 0.5],
'Word2': [0.06, 0.5],
'Word3': [0.04, 0.5]
})
请注意,您可能需要根据您的命名方案更改 tfidf_df
变量
tfidf_df['TFIDF of each word'] = tfidf_df[sorted(tfidf_df.columns)].values.tolist()
df_2 = pd.concat([df, tfidf_df["TFIDF of each word"]], axis=1)
print(df_2)
Tokenized_string TFIDF of each word
0 [word1, word2, word3] [0.03, 0.06, 0.04]
1 [word1, word3, word4] [0.5, 0.5, 0.5]
我的第一个数据框包含我标记化的句子,第二个是每个句子中每个单词的所有 TFIDF 的矩阵。
我正在尝试创建一个新列,其中仅存储句子中单词的 TFIDF。我该怎么做?
标记句子 table
Index | Tokenized_string |
---|---|
1 | [word1,word2,word3] |
2 | [word1,word3,word4] |
Tfidf Table
Index | Word1 | Word2 | ... |
---|---|---|---|
1 | 0.03 | 0.06 | ... |
2 | 0.5 | 0.5 | ... |
我正在尝试创建的 table
Index | Tokenized_string | TFIDF of each word |
---|---|---|
1 | [word1,word2,word3] | [0.03,0.06,0.1] |
2 | [word1,word3,word4] | [0.5,0.4,0.2] |
在我的示例中创建数据帧:
import pandas as pd
df = pd.DataFrame({ 'Tokenized_string':
[['word1','word2','word3'],
['word1','word3','word4']]
})
df_2 = pd.DataFrame({ 'Tokenized_string':
[['word1','word2','word3'],
['word1','word3','word4']],
'TFIDF of each word':
[[0.03,0.06,0.1],
[0.5,0.4,0.2]]})
您可以通过以下方式做到这一点。
下面以tfidf_df
为例
tfidf_df = pd.DataFrame({
'Word1': [0.03, 0.5],
'Word2': [0.06, 0.5],
'Word3': [0.04, 0.5]
})
请注意,您可能需要根据您的命名方案更改 tfidf_df
变量
tfidf_df['TFIDF of each word'] = tfidf_df[sorted(tfidf_df.columns)].values.tolist()
df_2 = pd.concat([df, tfidf_df["TFIDF of each word"]], axis=1)
print(df_2)
Tokenized_string TFIDF of each word
0 [word1, word2, word3] [0.03, 0.06, 0.04]
1 [word1, word3, word4] [0.5, 0.5, 0.5]