如何对中文部分进行独热处理(one-hot)

  统计/机器学习 自然语言处理 数据预处理 Python    浏览次数:464        分享
0


import pandas as pd 
import numpy as np 

a = [['苹果', 10, 4.2], ['龙眼', '6.2,6.8', 0.03], ['荔枝', np.nan, np.nan]]
df = pd.DataFrame(a)
df.columns=['a','b','c']
print(df)

from sklearn import preprocessing  
enc = preprocessing.OneHotEncoder()  
# df['a'].encode('Unicode')
enc.fit(df['a'])  
df['a'] = enc.transform([df['a']])
print('df[a]\n',df['a'])

输出结果:

    a        b     c
0  苹果       10  4.20
1  龙眼  6.2,6.8  0.03
2  荔枝      NaN   NaN

报错:

ValueError: could not convert string to float: '荔枝'
 

rosefun   2018-06-03 23:10



   1个回答 
2

怎么一直没有人回答这个问题...

OneHotEncoder不能直接把string类型的列进行one-hot coding,你需要先用整数代替字符,比如说用LabelEncoder,然后再用OneHotEncoder。

这个问题sklearn onehotencoder的具体用法是和你一模一样的情况,数据中一列是字符形式。你直接看里面的代码就行了。

SofaSofa数据科学社区DS面试题库 DS面经

何立诚   2019-05-10 03:56



  相关主题

求python里得到n-grams的包?   2回答

自定义CountVectorizera中默认的英语stop_words   1回答

python去掉中文文本中所有的标点符号   3回答

请问NLP中这种编码方式有没有什么术语?   1回答

怎么理解nlp里的good-turing smooth?   1回答

数据批量分析提取,求指点迷津   4回答

如果不去除stop words,word2vec的结果会受到影响吗?   0回答

wordcloud安装报错error: Microsoft Visual C++ 14.0 is required   1回答

有个一万段文字 有一个关键词列表 找出文字中含有关键词的那些文字   1回答

用python统计字符串中空格的个数   3回答

python里实现词云的package   3回答

怎么把英文字符串转为小写(python)?   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!