【问题标题】:TFIDF and Multilingual Text ClassificationTFIDF 和多语言文本分类
【发布时间】:2020-04-23 12:48:30
【问题描述】:

我有一个场景,有一家商店有不同语言的视频内容,包括英语。我想使用 TFIDF 对项目进行推荐,但我对停用词感到困惑。它将如何以多种语言表现? stop_word 应该是什么?

tftdf = TfidfVectorizer()
count_matrix = tftdf.fit_transform(df["combined_features"])
cosine_sim = cosine_similarity(count_matrix)

【问题讨论】:

    标签: python-3.x machine-learning nlp


    【解决方案1】:

    停用词是一组常用词,它们在文本中添加更多噪音而不是有用信息。英语中常见的停用词有:atheinan,标点符号也可以是停用词。

    一些图书馆很糟糕,因为 NLTK 已经为英语建立了停用词集。 Example:

    import nltk
    from nltk.corpus import stopwords
    set(stopwords.words('english'))
    

    您还可以根据您正在构建的 NLP 应用程序的上下文自定义停用词列表。

    每种语言都有一组不同的停用词,英文的停用词集如下所示:

    english_stop_words = ["the","a","an","it","by","or",...]

    虽然葡萄牙语停用词列表如下所示:

    portuguse_stop_words = ["a", "o","um","uma","pelo", "pela","ou",...]

    一组法语停用词可能是:

    french_stop_words = ["le","la", "à","alors","ce",...]

    因此,对于每种语言,您都需要该语言的一组特定停用词。不一定是从一种语言到另一种语言的停用词的直接翻译。

    同样,这一切都与您的应用程序的目的有关。在自然语言处理管道的预处理步骤中使用停用词作为降噪步骤。

    Here is a website that has a list of stop words for several languages.

    祝你好运:)

    【讨论】:

    • 顺便说一句,您可能想尝试 not 使用停用词。虽然它们可能会减少某些信息检索应用程序中的噪音,但它们仍然有语言用途(否则我们不会使用它们)。
    • 感谢@OliverMason 明确提出这个问题。正如我在答案中提到的,它是一组添加噪音的单词,但我没有提到该集合可能是空的!
    • 是的,我知道有一个 python 包可以为不同语言提供停用词列表,但我的问题是我的内容 CSV 包含不同语言的项目,我必须使用 TFIDF,所以我应该使用 stop_words在这种情况下?
    • 请改写您原来的问题,因为您的问题与您的评论不一致。谢谢你:)
    猜你喜欢
    • 2016-10-02
    • 2017-08-27
    • 2014-05-25
    • 1970-01-01
    • 2019-07-05
    • 2015-04-20
    • 2019-09-27
    • 2017-04-20
    • 2013-06-04
    相关资源
    最近更新 更多