如何在Spark 1.6.3的PySpark中配置法语StopWordsRemover
在Spark 1.6.3的PySpark中配置法语StopWordsRemover的方法
没问题,我来帮你搞定Spark 1.6.3版本PySpark里法语停用词移除的配置~由于这个版本的StopWordsRemover默认只带英语停用词,我们可以通过两种方式实现法语停用词的处理,下面一步步来:
方法一:使用Spark内置的法语停用词集合
Spark 1.6.3其实内置了多语言的停用词资源,我们可以直接调用获取法语列表:
- 先导入所需的模块
from pyspark.ml.feature import StopWordsRemover, StopWords from pyspark.ml.feature import Tokenizer
- 获取官方维护的法语停用词列表
french_stop_words = StopWords.get("french")
如果你想确认支持的语言,可以运行print(StopWords.getSupportedLanguages())查看,1.6.3版本里已经包含法语、西班牙语等常用语言。
- 初始化
StopWordsRemover并关联停用词列表
注意:StopWordsRemover的输入列必须是字符串数组类型,所以如果你的原始文本是整句字符串,需要先分词:
# 假设你的原始数据列叫original_text,先分词得到单词数组列text tokenizer = Tokenizer(inputCol="original_text", outputCol="text") # 初始化停用词移除器,指定输入、输出列和法语停用词 remover = StopWordsRemover( inputCol="text", outputCol="filtered_text", stopWords=french_stop_words )
方法二:自定义法语停用词列表
如果官方的停用词不符合你的业务需求(比如需要补充行业特定的停用词),可以自己定义列表:
# 自定义法语停用词,你可以根据需求添加或删减 custom_french_stop_words = [ "le", "la", "les", "un", "une", "des", "je", "tu", "il", "elle", "nous", "vous", "ils", "elles", "me", "te", "se", "nous", "vous", "lui", "leur", "y", "en", "a", "ai", "as", "avons", "avez", "ont", "est", "es", "sommes", "êtes", "sont", "et", "ou", "mais", "donc", "or", "ni", "car" ] # 初始化移除器时传入自定义列表 remover = StopWordsRemover( inputCol="text", outputCol="filtered_text", stopWords=custom_french_stop_words )
完整示例代码
下面是一个从数据创建到结果输出的完整流程:
from pyspark.sql import SparkSession # 初始化SparkSession(Spark 1.6.3的标准写法) spark = SparkSession.builder.appName("FrenchStopWordsDemo").getOrCreate() # 测试数据:两句法语句子 data = [ ("Je suis étudiant en informatique et j'aime apprendre Spark",), ("Le chat dort sur le canapé et le chien joue dans le jardin",) ] df = spark.createDataFrame(data, ["original_text"]) # 第一步:分词 tokenized_df = tokenizer.transform(df) # 第二步:移除法语停用词 result_df = remover.transform(tokenized_df) # 查看处理前后的对比 result_df.select("original_text", "filtered_text").show(truncate=False)
运行后你会看到输出里的filtered_text列已经去掉了所有法语停用词,只保留核心词汇。
内容的提问来源于stack exchange,提问作者nassimlaga
相关产品推荐
相关产品推荐

