当前位置:   article > 正文

python实现分词器_python 分词器

python 分词器

在Python中实现分词有很多方法,具体取决于你的应用场景和数据。下面我会介绍一种常用的分词库——jieba。如果你的数据是英文,你也可以使用nltk库。

中文分词

使用jieba进行中文分词:

首先,你需要安装jieba库。如果还未安装,请在命令行输入以下命令:

pip install jieba

使用下面的代码进行分词

  1. import jieba
  2. sentence = "我来到北京清华大学"
  3. words = jieba.cut(sentence)
  4. print(' '.join(words))

运行以上代码,输出结果为:“我 来 到 北京 清华大学”

jieba.cut`方法返回的是一个可迭代的generator,也可以直接在for循环中使用它。

英文分词

首先,需要安装nltk库。如果还未安装,请在命令行输入以下命令

pip install nltk

然后使用下面的代码进行分词: 

  1. import nltk
  2. sentence = "I am going to the park"
  3. words = nltk.word_tokenize(sentence)
  4. print(words)

运行以上代码,输出结果为:['I', 'am', 'going', 'to', 'the', 'park']

注意:对于nltk库,如果你的数据是英文,可以直接使用nltk.word_tokenize方法;如果是中文,需要先下载并使用nltk.download('punkt')来下载英文分词器。

多种语言分词

使用spacy可以完成多国语言分词

spacy官网

https://spacy.io/

 

Models & Languages · spaCy Usage Documentation 

安装spacy(时间微长)

pip install spacy

安装字典这里以英文中文为例,其他参考官网

  1. #中文
  2. python -m spacy download zh_core_web_sm
  3. #英文
  4. python -m spacy download en_core_web_sm

分词(判断是不是一个句子)

  1. def is_a_word(lang_code, text):
  2. print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>is_a_word")
  3. print(lang_code)
  4. if lang_code.lower() == "en":
  5. nlp = spacy.load("en_core_web_sm") # 加载英文模型
  6. elif lang_code.lower() == "zh":
  7. nlp = spacy.load("zh_core_web_sm") # 加载中文模型
  8. elif lang_code.lower() == "fr":
  9. nlp = spacy.load("fr_core_news_sm") # 加载法语模型
  10. elif lang_code.lower() == "de":
  11. nlp = spacy.load("de_core_news_sm") # 加载德语模型
  12. elif lang_code.lower() == "es":
  13. nlp = spacy.load("es_core_news_sm") # 加载西班牙语模型
  14. elif lang_code.lower() == "it":
  15. nlp = spacy.load("it_core_news_sm") # 加载意大利模型
  16. else:
  17. print("输入了非法的语言Code")
  18. return False
  19. doc = nlp(text)
  20. tokens = [token.text for token in doc]
  21. return len(tokens) == 1 and tokens[0] == text

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/527505
推荐阅读
相关标签
  

闽ICP备14008679号