小编Ami*_*mir的帖子

Python 中的 Pathlib 与 os.path.join

当我需要在脚本中定义文件系统路径时,我用来os.path.join保证该路径在不同文件系统上保持一致:

from os import path
path_1 = path.join("home", "test", "test.txt")
Run Code Online (Sandbox Code Playgroud)

我也知道有一个Pathlib库基本上做同样的事情:

from pathlib import Path
path_2 = Path("home") / "test" / "test.txt"
Run Code Online (Sandbox Code Playgroud)

这两种处理路径的方法有什么区别?哪一个更好?

python path os.path pathlib

67
推荐指数
1
解决办法
3万
查看次数

如何用键初始化defaultdict?

我有一个列表字典,它应该用默认密钥初始化.我猜,下面的代码不好(我的意思是,它有效,但我觉得它不是用pythonic方式编写的):

d = {'a' : [], 'b' : [], 'c' : []}
Run Code Online (Sandbox Code Playgroud)

所以我想使用更像pythonic的东西defaultict:

d = defaultdict(list)
Run Code Online (Sandbox Code Playgroud)

但是,我见过的每个教程都会动态设置新密钥.但在我的情况下,所有的键都应该从一开始就定义.我正在解析其他数据结构,只有当结构中的特定键也包含在我的字典中时,才会向我的字典添加值.

如何设置默认密钥?

python defaultdict python-collections

9
推荐指数
4
解决办法
7119
查看次数

禁用部分 nlp 管道

我在带有 python3 的 Windows 机器上运行 spaCy v2.x。我没有管理员权限,所以我必须将管道称为:

nlp = en_core_web_sm.load()

当我在 *nix 机器上运行相同的脚本时,我可以将管道加载为:

nlp = spacy.load('en', disable = ['ner', 'tagger', 'parser', 'textcat'])

我所做的只是标记化,所以我不需要整个管道。在 Windows 框中,如果我加载管道,如:

nlp = en_core_web_sm.load(disable = ['ner', 'tagger', 'parser', 'textcat'])

这实际上会禁用组件吗?

nlp 管道上的 spaCy 信息

nlp python-3.x spacy

8
推荐指数
2
解决办法
4483
查看次数

使用 spaCy 将词向量映射到最相似/最接近的词

我正在使用 spaCy 作为主题建模解决方案的一部分,并且我需要将派生词向量映射到词向量词汇表中的“最接近”或“最相似”词。

我看到 gensim 有一个函数 (WordEmbeddingsKeyedVectors.similar_by_vector) 来计算这个,但我想知道 spaCy 是否有这样的东西来将向量映射到其词汇表 (nlp.vocab) 中的单词?

nlp word2vec spacy word-embedding

6
推荐指数
3
解决办法
3456
查看次数

将复合句拆分成简单句

我正在寻找一个可以将复合句拆分成简单句的句子分割器。

例子:

Input: Andrea is beautiful but she is strict.
(expected) Output: Andrea is beautiful. she is strict.

Input: i am andrea and i work for google. 
(expected) Output: i am andrea. i work for google.

Input: Italy is my favorite country; i plan to spend two weeks there next year.
(expected) Output: Italy is my favorite country. i plan to spend two weeks there next year.
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?我尝试了 NLTK、spacy、segtok、nlp-compromise,但它们不适用于这些复杂的示例(我知道这是一个难题,因此没有简单的解决方案)。

nlp chatbot

5
推荐指数
1
解决办法
1776
查看次数

在 nltk for python 中编辑 Vader_lexicon.txt 以添加与我的域相关的单词

我正在使用vaderinnltk来查找文件中每一行的情绪。我有两个问题:

  1. 我需要添加单词,vader_lexicon.txt但其语法如下:

攻击 -2.5 0.92195 [-1, -3, -3, -3, -4, -3, -1, -2, -2, -3]

-2.5和代表什么0.92195 [-1, -3, -3, -3, -4, -3, -1, -2, -2, -3]

我应该如何为新单词编码?假设我必须添加类似'100%',的内容'A1'

  1. 我还可以在文件夹中看到积极和消极的单词txt nltk_data\corpora\opinion_lexicon。这些如何被利用?我也可以在这些 txt 文件中添加我的话吗?

python nlp nltk python-3.x sentiment-analysis

5
推荐指数
1
解决办法
3316
查看次数

如何将词嵌入和 pos 嵌入结合在一起来构建分类器

你知道的 POS 就像 'NP'、'VERB'。如何将这些功能结合到 word2vec 中?

就像下面的向量一样?

keyword    V1         V2          V3         V4            V5         V6   
corruption 0.07397  0.290874    -0.170812   0.085428     'VERB'    'NP' 
people      ..............................................................
budget      ...........................................................
Run Code Online (Sandbox Code Playgroud)

nlp word2vec word-embedding pos

3
推荐指数
1
解决办法
5285
查看次数

如何按它们在 Python 中的位置删除多个子字符串?

我有一个字符串,我有一个需要删除的子字符串的位置列表:

text = 'ab cd ef gh'
positions = [[2, 5], [8, 11]]
Run Code Online (Sandbox Code Playgroud)

列表的每个元素都包含子字符串的开始和结束位置。结束位置是独占的,开始位置是包括在内的。所以字符串应该转换为:

text = 'ab ef'
Run Code Online (Sandbox Code Playgroud)

位置列表的长度是未知的,所以灵魂不能只是硬编码。

有没有什么有效的方法可以按位置删除多个子串?位置不能重叠。

python

2
推荐指数
1
解决办法
357
查看次数