正文
据集是不平衡的,这些数据集对机器学习算法的学习阶段和后续预测都有影响,imbalanced-learn的创建就是为了解决此类问题,它与scikit-learn兼容,是scikit-learn-contrib项目的一部分。下次如果你遇到不平衡的数据集时,考虑一下它。(项目地址:https://github.com/scikit-learn-contrib/imbalanced-learn)
pip install -U imbalanced-learn
# or
conda install -c conda-forge imbalanced-learn
4、FlashText
在NLP任务中清理文本数据通常需要替换句子中的关键字或从句子中提取关键字。这类操作一般使用正则表达式来完成,但是如果搜索的关键词数量达到数千个,就会变得很麻烦。Python的FlashText模块是基于FlashText算法,它为这种情况提供了一个合适的替代方案。FlashText最好的部分是,不管搜索词的数量是多少,运行时都是一样的。
(项目地址:
https://github.com/vi3k6i5/flashtext
)
from flashtext import KeywordProcessor
keyword_processor = KeywordProcessor()
# keyword_processor.add_keyword(, )
keyword_processor.add_keyword( Big Apple , New York )
keyword_processor.add_keyword( Bay Area )
keywords_found = keyword_processor.extract_keywords( I love Big Apple and Bay Area. )
keywords_found
[ New York , Bay Area ]
keyword_processor.add_keyword( New Delhi , NCR region )
new_sentence = keyword_processor.replace_keywords( I love Big Apple and new delhi. )
new_sentence
I love New York and NCR region.
5、Fuzzywuzzy
这个名字听起来确实很奇怪,但是涉及到字符匹配时,fuzzywuzzy是一个非常有用的库。
可以快速实现诸如字符串匹配度、令牌匹配度等操作。
它还可以方便地匹配保存在不同数据库中的记录。
(项目地址:
https://github.com/seatgeek/fuzzywuzzy)