当我需要在脚本中定义文件系统路径时,我用来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)
这两种处理路径的方法有什么区别?哪一个更好?
我有一个列表字典,它应该用默认密钥初始化.我猜,下面的代码不好(我的意思是,它有效,但我觉得它不是用pythonic方式编写的):
d = {'a' : [], 'b' : [], 'c' : []}
Run Code Online (Sandbox Code Playgroud)
所以我想使用更像pythonic的东西defaultict:
d = defaultdict(list)
Run Code Online (Sandbox Code Playgroud)
但是,我见过的每个教程都会动态设置新密钥.但在我的情况下,所有的键都应该从一开始就定义.我正在解析其他数据结构,只有当结构中的特定键也包含在我的字典中时,才会向我的字典添加值.
如何设置默认密钥?
我在带有 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'])
这实际上会禁用组件吗?
我正在使用 spaCy 作为主题建模解决方案的一部分,并且我需要将派生词向量映射到词向量词汇表中的“最接近”或“最相似”词。
我看到 gensim 有一个函数 (WordEmbeddingsKeyedVectors.similar_by_vector) 来计算这个,但我想知道 spaCy 是否有这样的东西来将向量映射到其词汇表 (nlp.vocab) 中的单词?
我正在寻找一个可以将复合句拆分成简单句的句子分割器。
例子:
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,但它们不适用于这些复杂的示例(我知道这是一个难题,因此没有简单的解决方案)。
我正在使用vaderinnltk来查找文件中每一行的情绪。我有两个问题:
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'。
nltk_data\corpora\opinion_lexicon。这些如何被利用?我也可以在这些 txt 文件中添加我的话吗?你知道的 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) 我有一个字符串,我有一个需要删除的子字符串的位置列表:
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)
位置列表的长度是未知的,所以灵魂不能只是硬编码。
有没有什么有效的方法可以按位置删除多个子串?位置不能重叠。