首页 > 解决方案 > 使用 fastText 执行示例代码时遇到问题

问题描述

背景

我想执行代码以使用 fastText 对每个文本的语言进行分类。

我做了什么

$ git clone https://github.com/facebookresearch/fastText.git
$ cd fastText
$ pip install .

上面的模型lid.176.bin和文件夹fastText与下面的 python 代码位于同一级别。

我不知道如何避免错误。

错误

ImportError: No module named fastText

代码

示例.py

from fastText import load_model
model = load_model("lid.176.bin")

speech_texts = ["Hello, guys. What's up?", '你好! 我是学生。', 'Hallo, ich habe das Buch.']

def categorize(texts):
    for i in range(len(texts)):
        text = texts[i]
        label, prob = model.predict(text, k)
        return list(zip([l.replace("__label__", "") for l in label], prob))

categorize(speech_texts)

对答案的回应

  1. 我试图按照答案执行命令,但我仍然在努力修复同样的错误。
$ pip3 install fasttext
Requirement already satisfied: fasttext in /usr/local/lib/python3.9/site-packages (0.9.2)
Requirement already satisfied: setuptools>=0.7.0 in /usr/local/lib/python3.9/site-packages (from fasttext) (51.1.1)
Requirement already satisfied: numpy in /usr/local/lib/python3.9/site-packages (from fasttext) (1.19.5)
Requirement already satisfied: pybind11>=2.2 in /usr/local/lib/python3.9/site-packages (from fasttext) (2.6.1)
    from fasttext import load_model
ImportError: No module named fasttext
  1. 我已安装的软件包
$ pip3 freeze
fasttext @ file:///Users/username/Desktop/sample/fastText
numpy==1.19.5
pybind11==2.6.1

开发环境

蟒蛇 3.9

Mac OS 大苏尔

标签: pythonpython-3.xnlpfasttext

解决方案


作为最佳实践,您应该使用 Python“虚拟环境”。

虽然避免这种混淆不是绝对必要的,但通过采用将特定项目的工作python和相关库与系统 python分开的原则,很多事情将在你的脑海中和你的脑海中明确分离和清晰文件系统。

使用虚拟环境的两种合理方法是:

一旦你习惯了使用显式环境,在你验证了两件事之后,像你这样的问题往往会消失:

  1. 在执行之前您是否正确激活了正确的环境pip install PKG?(在许多情况下conda,您可能更喜欢conda install PKG获得他们的额外优化包——尽管标准pip也适用于那里。)

  2. 您是否在安装了必要库的正确(相同)环境中执行代码?

如果您正在使用环境并验证这两件事,您通常不会对当前执行的代码是否可以使用已安装的库感到困惑。

由于在 MacOS 上,Python 2 和 Python 3 共存——在本质上是不同的虚拟环境中,你当前的问题也可能变得更加曲折。您对简单pythonpip调用执行的任何操作都使用默认的 Python 2。默认情况下,要在 Python 3 中安装或执行,您需要使用pip3python3. 安装的某些东西pip3可能对普通执行不可见python,从而产生类似于您遇到的错误。(一旦你开始使用 true venvs of conda,那么在激活的虚拟环境python中的普通或pip调用可能会选择适合该环境的 Python 3 可执行文件。)


推荐阅读