在一个Jupyter笔记本中,我如何使用两个版本的Gensim进行摘要生成?
问题的原因是Jupyter notebook只支持单个Python解释器/环境,并且流行的软件包只能在它们的“官方”安装路径上安装一次。有几种解决方法被建议,但每种方法都存在操作上的问题。
一种方法是将旧版本的软件包安装到非标准路径(目录),并且仍然可以被Python导入逻辑找到(由PYTHONPATH控制)。例如,将旧版本的Gensim放置/移动到gensim_old包目录。然而,这种方法只适用于非常简单(单个.py文件)的软件包。
对于任何重要的库(如Gensim),它会从自己的实用模块中相互导入许多东西,如果使用标准路径,许多东西可能会中断,除非您深入研究所有涉及的单个文件以更改其导入路径。这种方法较为麻烦且难以维护。
另一种方法是创建一个完全独立的Python环境,包含替代版本,并且仅通过系统调用在笔记本中使用该其他环境-可以使用Python代码中的subprocess.call(),或者使用笔记本单元格的`!`或`!!`命令来运行shell命令。这意味着您放弃了在该其他环境中运行单个交互式Python行的能力,但仍然可以发送批量数据,并且可以捕获控制台输出或观察其输出文件以继续在笔记本中进行处理。
第三种方法是尝试完全复制gensim.summarization源代码文件到项目内的新位置,并进行必要的编辑以确保从替代位置运行正常。这个功能被删除的原因之一是它在诸如标记化之类的事情上的方法与其他Gensim实践不一致/集成-这实际上意味着保持其工作可能会更容易(因为它使用自己的独特方法)。
个人认为这三种选项的可取性如下:
1. 在单独的Python环境中通过子进程执行将摘要任务分离出来,该环境仅安装了旧版本的软件包。
2. 将实现gensim.summarization的10个.py文件复制到自己的本地模块中。根据需要进行轻微编辑以确保其正常工作。
3. 将整个旧软件包安装到非标准目录中,并编辑许多文件以确保您正在使用的任何内容仍然正常工作。
最后,需要注意的是删除该功能的主要原因是它提供的结果并不令人印象深刻或适应性强。虽然有些人说它对他们的应用程序运行良好,但我从未见过一次令人印象深刻的演示,其中它的做法/算法-只能提取一些重要句子,而不能进行释义-给出了令人印象深刻的结果。因此,除非您已经知道它的方法适合您的需求,否则不要抱太大希望!祝好运。