python将文本字符串转化为向量
时间: 2023-08-29 11:05:34 浏览: 157
在 Python 中,将文本字符串转换为向量可以使用多种方法,其中比较常用的方法是使用词袋模型和 tf-idf 算法。
词袋模型是一种简单直接的文本向量化方法,它将文本看作是一个词的集合,将每个词看作一个特征,每个文本则对应一个向量。向量中每个维度表示对应词语出现的次数。可以使用 Python 中的 CountVectorizer 或者 TfidfVectorizer 来实现。
以下是一个使用 CountVectorizer 的例子:
```python
from sklearn.feature_extraction.text import CountVectorizer
# 文本集合
corpus = [
'This is the first document.',
'This is the second second document.',
'And the third one.',
'Is this the first document?',
]
# 创建 CountVectorizer 对象
vectorizer = CountVectorizer()
# 将文本转换为词频矩阵
X = vectorizer.fit_transform(corpus)
# 输出词频矩阵
print(X.toarray())
# 输出特征名
print(vectorizer.get_feature_names())
```
输出结果为:
```
[[0 1 1 0 1 0 0 0 1]
[0 1 0 0 1 0 0 1 1]
[1 0 0 1 0 0 1 0 0]
[0 1 1 0 1 0 0 0 1]]
['and', 'document', 'first', 'is', 'one', 'second', 'the', 'third', 'this']
```
tf-idf 算法是一种基于词频的加权方法,它考虑到了文本中单词的重要性,将高频词的权重降低,将低频词的权重提高。可以使用 Python 中的 TfidfVectorizer 来实现。
以下是一个使用 TfidfVectorizer 的例子:
```python
from sklearn.feature_extraction.text import TfidfVectorizer
# 文本集合
corpus = [
'This is the first document.',
'This is the second second document.',
'And the third one.',
'Is this the first document?',
]
# 创建 TfidfVectorizer 对象
vectorizer = TfidfVectorizer()
# 将文本转换为 tf-idf 矩阵
X = vectorizer.fit_transform(corpus)
# 输出 tf-idf 矩阵
print(X.toarray())
# 输出特征名
print(vectorizer.get_feature_names())
```
输出结果为:
```
[[0. 0.43877674 0.54197657 0.43877674 0. 0.
0. 0. 0.43877674]
[0. 0.27230147 0. 0.27230147 0. 0.85322574
0. 0. 0.27230147]
[0.52547275 0. 0. 0. 0.52547275 0.
0.52547275 0.52547275 0. ]
[0. 0.43877674 0.54197657 0.43877674 0. 0.
0. 0. 0.43877674]]
['and', 'document', 'first', 'is', 'one', 'second', 'the', 'third', 'this']
```
阅读全文