- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试对一列句子执行 StringIndexer 操作,即将单词列表转换为整数列表。
例如:
输入数据集:
(1, ["I", "like", "Spark"])
(2, ["I", "hate", "Spark"])
我预计 StringIndexer 之后的输出如下:
(1, [0, 2, 1])
(2, [0, 3, 1])
理想情况下,我希望将此类转换作为管道的一部分进行,以便我可以将变压器链接在一起并序列化以进行在线服务。
这是 Spark 本身支持的吗?
谢谢!
最佳答案
用于将文本转换为特征的标准Transformers
是 CountVectorizer
CountVectorizer and CountVectorizerModel aim to help convert a collection of text documents to vectors of token counts.
或HashingTF
:
Maps a sequence of terms to their term frequencies using the hashing trick. Currently we use Austin Appleby's MurmurHash 3 algorithm (MurmurHash3_x86_32) to calculate the hash code value for the term object. Since a simple modulo is used to transform the hash function to a column index, it is advisable to use a power of two as the numFeatures parameter; otherwise the features will not be mapped evenly to the columns.
两者都有binary
选项,可用于从计数 vector 切换到二进制 vector 。
没有内置的 Transfomer
可以给出您想要的精确结果(它对 ML 算法没有用),您可以explode
应用 StringIndexer
和 collect_list
/collect_set
:
import org.apache.spark.ml.feature._
import org.apache.spark.ml.Pipeline
val df = Seq(
(1, Array("I", "like", "Spark")), (2, Array("I", "hate", "Spark"))
).toDF("id", "words")
val pipeline = new Pipeline().setStages(Array(
new SQLTransformer()
.setStatement("SELECT id, explode(words) as word FROM __THIS__"),
new StringIndexer().setInputCol("word").setOutputCol("index"),
new SQLTransformer()
.setStatement("""SELECT id, COLLECT_SET(index) AS values
FROM __THIS__ GROUP BY id""")
))
pipeline.fit(df).transform(df).show
// +---+---------------+
// | id| values|
// +---+---------------+
// | 1|[0.0, 1.0, 3.0]|
// | 2|[2.0, 0.0, 1.0]|
// +---+---------------+
使用CountVectorizer
和udf
:
import org.apache.spark.ml.linalg._
spark.udf.register("indices", (v: Vector) => v.toSparse.indices)
val pipeline = new Pipeline().setStages(Array(
new CountVectorizer().setInputCol("words").setOutputCol("vector"),
new SQLTransformer()
.setStatement("SELECT *, indices(vector) FROM __THIS__")
))
pipeline.fit(df).transform(df).show
// +---+----------------+--------------------+-------------------+
// | id| words| vector|UDF:indices(vector)|
// +---+----------------+--------------------+-------------------+
// | 1|[I, like, Spark]|(4,[0,1,3],[1.0,1...| [0, 1, 3]|
// | 2|[I, hate, Spark]|(4,[0,1,2],[1.0,1...| [0, 1, 2]|
// +---+----------------+--------------------+-------------------+
关于java - Spark : StringIndexer on sentences,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47684543/
因此,我将在数据库中存储数百万个句子,每个句子都有一个作者。我需要能够有效地搜索句子并返回作者。现在,我希望能够拼错一个词或忘记这句话中的一两个词,并且应用程序仍然能够匹配(模糊式)。谁能指出我正确的
我知道有 Edit > Change Case菜单。但是对于句子大小写没有选择。 我如何实现这一目标?正则表达式可以做到这一点吗? 最佳答案 你可以用这个正则表达式 : 查找 (^|\.\s|…\s)
我是 Ruby 新手。这是一个使用任何语言的编程面试问题。我正在尝试用 Ruby 来做。 编写一个程序来输入给定的句子。用单词的第一个字母/#ofcharactersbetween1st&laSTLe
我有一个关于在 GATE 中使用 ANNIE 插件的 Gate API 的问题。我在 java 程序中使用了 GATE api,它适用于 50 多个文档。但是当我为超过 50 个文档运行它时,它给出了
我有一个程序要求输入一个句子,然后要求输入一个词,并告诉你那个词的位置: sentence = input("enter sentence: ").lower() askedword = input(
题目地址:https://leetcode-cn.com/problems/sentence-similarity/ 题目描述 Given two sentences words1, words2
用例 准备一个正则表达式,可以匹配'sell|sold|selling'之后的1个或2个词,并匹配变量“product” 示例 Sentence - "John wants to sell 200$
我正在尝试对一列句子执行 StringIndexer 操作,即将单词列表转换为整数列表。 例如: 输入数据集: (1, ["I", "like", "Spark"]) (2, ["I", "h
背景 希望在 JasperServer 中自动创建域。域是用于创建临时报告的数据“ View ”。列的名称必须以人类可读的方式呈现给用户。 问题 从理论上讲,组织可能希望将超过 2,000 条数据包含
我正在为我的 Sentence Splitter 应用程序寻找一个测试文件,我希望该文件能够涵盖尽可能多的案例。 谢谢! 最佳答案 阅读 Lingua::Sentence 的文档.它命名了它使用的语料
我正在尝试创建一个程序,从电视直播网站获取 html,然后使用 split 函数将所有 html 数据拆分为 channel 名称和表中当前正在播放的节目,例如如:BBC 1 -“节目名称”。我只需要
这个问题在这里已经有了答案: Combining two sed commands (2 个答案) 关闭 1 年前。 我做了这个脚本: xrandr | grep '*' | sed 's/\S*\
如何使用 GO 编程语言找到给定句子的首字母缩写词。例如,“你好,世界!”变成“HW”。到目前为止,我已经尝试拆分句子: package main import ( "bufio" "
工厂定义: public function definition() { return [ 'user_id' => function() { retu
我在 HPC 上工作,工作节点上没有互联网访问权限,训练后保存 SetFit 训练器的唯一选择是将其推送到 HuggingFace hub。如何将其保存到本地磁盘? https://github.co
当我对以下文件运行 parser.y 时,出现以下错误: myanalyzer.y: warning: 14 nonterminals useless in grammar myanalyzer.y:
我在 HPC 上工作,工作节点上没有互联网访问权限,训练后保存 SetFit 训练器的唯一选择是将其推送到 HuggingFace hub。如何将其保存到本地磁盘? https://github.co
所以我刚刚在 Shinyapps 上部署了我的电影推荐,但我仍然想改变一件事。请看下面的图片。 因为我不想把“你可能也喜欢这个”放在另一个框中,我真的不知道如何在 html/css 格式中调整它。对我
我用 python 创建了一个程序,它基本上告诉用户输入一个单词,并告诉他们它是否是回文。 我的程序: def palindrome(word): return word == word[::
我需要删除第一个字符(不是空格)之前的所有空格,并删除最后一个字符(不是空格)之后的所有空格。 看起来像这样: ' a boat has an anchor
我是一名优秀的程序员,十分优秀!