【发布时间】:2017-09-22 21:57:37
【问题描述】:
我想将一个句子转换为一个单热向量数组。 这些向量将是字母表的 one-hot 表示。 如下所示:
"hello" # h=7, e=4 l=11 o=14
会变成
[[0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
不幸的是,来自 sklearn 的 OneHotEncoder 不作为输入字符串。
【问题讨论】:
-
到目前为止你尝试过什么?给我们看一些代码!
-
欢迎来到 StackOverflow。请阅读并遵循帮助文档中的发布指南。 on topic 和 how to ask 在这里申请。 StackOverflow 不是设计、编码、研究或教程服务。
-
也就是说,请参阅有关 chr 和 ord 方法的文档。
-
到目前为止我尝试的是以下(应用于语料库中的每个句子)但我想知道是否存在更简单的解决方案 sentence_chars = [c for c in sentence.lower() if c in字母表] ohv = label_binarize(sentence_chars, classes=list(alphabet)) ohv = ohv.astype(bool)
-
来自 sklearn 的 OneHotEncoder 现在已与 CategoricalEncoder 合并,因此现在应该可以使用 sklearn.preprocessing.OneHotEncoder(categories="auto") 来实现。 (这是 LSTM 等顺序模型的默认表示)github.com/scikit-learn/scikit-learn/blob/…
标签: python pandas numpy nlp one-hot-encoding