Github user hhbyyh commented on a diff in the pull request:
https://github.com/apache/spark/pull/12968#discussion_r64152062
--- Diff:
mllib/src/main/scala/org/apache/spark/ml/feature/StopWordsRemover.scala ---
@@ -73,22 +75,38 @@ class StopWordsRemover(override val uid: String)
/** @group getParam */
def getCaseSensitive: Boolean = $(caseSensitive)
- setDefault(stopWords ->
StopWordsRemover.loadDefaultStopWords("english"), caseSensitive -> false)
+ /**
+ * Locale for doing a case sensitive comparison
+ * Default: English locale ("en")
+ * @see [[http://www.localeplanet.com/java/]]
+ * @group param
+ */
+ val locale: Param[String] = new Param[String](this, "locale",
+ "locale for doing a case sensitive comparison")
+
+ /** @group setParam */
+ def setLocale(value: String): this.type = set(locale, value)
+
+ /** @group getParam */
+ def getLocale: String = $(locale)
+
+ setDefault(stopWords -> StopWordsRemover.loadDefaultStopWords("english"),
+ caseSensitive -> false, locale -> "en")
@Since("2.0.0")
override def transform(dataset: Dataset[_]): DataFrame = {
val outputSchema = transformSchema(dataset.schema)
val t = if ($(caseSensitive)) {
val stopWordsSet = $(stopWords).toSet
udf { terms: Seq[String] =>
- terms.filter(s => !stopWordsSet.contains(s))
+ terms.filterNot(stopWordsSet.contains)
}
} else {
- // TODO: support user locale (SPARK-15064)
- val toLower = (s: String) => if (s != null) s.toLowerCase else s
+ val loadedLocale = StopWordsRemover.loadLocale($(locale))
--- End diff --
Maybe just `new Locale($(locale))`
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]