小编Dav*_*sta的帖子

气流:改变气流中DAG的crontab时间

我有一个DAG,每天凌晨3点运行,过去几周运行正常.

我已经更新了现在7点运行的日期,但显然最近2天没有运行.我可以看到状态为"正在运行"(绿色)的那两天的任务,但是没有触发任何命令.

是否需要做更多的事情才能改变DAG的运行时间?

我知道在过去,解决这个问题的一种方法是在元数据库中清理此DAG的任务,并更新start_date,但我宁愿避免再次这样做.

有人有建议吗?

airflow

12
推荐指数
2
解决办法
6476
查看次数

从依赖树中提取(主题,谓词,对象)

我有兴趣从问题中提取三元组(主语,谓语,宾语).

例如,我想转换以下问题:

谁是美国总统的妻子?

至 :

(x,isWifeOf,y)∧(y,isPresidentof,USA)

x和y是我们必须找到的unknows才能回答问题(/ \表示连接).

我已经阅读了很多关于这个主题的论文,我想使用现有的解析器(如Stanford解析器)来执行此任务.我知道解析器输出2种类型的数据:

  • 解析结构树(选区关系)
  • 依赖树(依赖关系)

一些论文试图从解析结构树中构建三元组(例如,从句子中提取三重提取),但是这种方法似乎太弱而无法处理复杂的问题.

另一方面,依赖树包含许多相关信息以执行三次提取.很多论文声称这样做,但是我没有找到任何明确给出详细程序或算法的论文.大多数时候,作者说他们根据他们没有给出的一些规则来分析产生三元组的依赖关系.

有没有人知道任何有关从问题的依赖树中提取(主题,谓词,对象)的更多信息的论文?

rdf nlp stanford-nlp nlp-question-answering dependency-parsing

10
推荐指数
1
解决办法
1513
查看次数

Pickle Tfidfvectorizer以及自定义标记器

我正在使用服装标记器传递给TfidfVectorizer.该标记化器依赖于外部类TermExtractor,它位于另一个文件中.

我基本上想要基于某些术语构建TfidVectorizer,而不是所有单个单词/令牌.

这是代码:

from sklearn.feature_extraction.text import TfidfVectorizer
from TermExtractor import TermExtractor

extractor = TermExtractor()

def tokenize_terms(text):
    terms = extractor.extract(text)
    tokens = []
    for t in terms:
        tokens.append('_'.join(t))
    return tokens


def main(): 
    vectorizer = TfidfVectorizer(lowercase=True, min_df=2, norm='l2', smooth_idf=True, stop_words=stop_words, tokenizer=tokenize_terms)
    vectorizer.fit(corpus)
    pickle.dump(vectorizer, open("models/terms_vectorizer", "wb"))
Run Code Online (Sandbox Code Playgroud)

运行正常,但每当我想重新使用这个TfidfVectorizer并用pickle加载它时,我收到一个错误:

vectorizer = pickle.load(open("models/terms_vectorizer", "rb"))

Traceback (most recent call last):
  File "./train-nps-comments-classifier.py", line 427, in <module>
    main()
  File "./train-nps-comments-classifier.py", line 325, in main
    vectorizer = pickle.load(open("models/terms_vectorizer", "rb"))
  File "/usr/lib/python2.7/pickle.py", line 1378, in load
    return Unpickler(file).load()
  File "/usr/lib/python2.7/pickle.py", …
Run Code Online (Sandbox Code Playgroud)

python pickle tf-idf scikit-learn

9
推荐指数
1
解决办法
2971
查看次数

斯坦福核心NLP如何获得错误的概率和余量

当使用解析器或Core NLP中的任何Annotation时,有没有办法访问错误的概率或余量?

为了将我的问题放到上下文中,我试图理解是否有一种方法可以检测出歧义的情况.例如,在下面的句子中,动词欲望被检测为名词.我希望能够知道我可以从Core NLP APi访问或计算的那种措施告诉我可能存在歧义.

(NP (NP (NNP Whereas)) (, ,) (NP (NNP users) (NN desire) (S (VP (TO to) (VP (VB sell)))))) 
Run Code Online (Sandbox Code Playgroud)

nlp pos-tagger stanford-nlp

8
推荐指数
0
解决办法
510
查看次数

如何在tensorflow中实现句子级别的对数似然?

我想实现句子级对数似然,如 Collobert等人所述.,p.14.

要计算转换分数,我可以使用CRF,但我不知道如何将它集成到tensorflow中.我想过使用 tf.contrib.crf.CrfForwardRnnCell来计算转换分数,但是这个类返回一包含新alpha值的[batch_size,num_tags]矩阵值,而不是像我期望的那样[batch_size,num_tags,num_tags]张量.

有没有人有一个如何在张量流中使用CRF的例子?谢谢!

crf tensorflow log-likelihood

8
推荐指数
1
解决办法
3083
查看次数

word2vec,总和或平均字嵌入?

我使用word2vec来表示一个小短语(3到4个单词)作为一个独特的向量,通过添加每个单独的嵌入或通过计算单词嵌入的平均值.

从我做过的实验中,我总是得到相同的余弦相似度.我怀疑它与训练后word2vec生成的单词长度(单位长度(Euclidean norm))有关吗?或者我在代码中有BUG,或者我遗漏了一些东西.

这是代码:

import numpy as np
from nltk import PunktWordTokenizer
from gensim.models import Word2Vec
from numpy.linalg import norm
from scipy.spatial.distance import cosine

def pattern2vector(tokens, word2vec, AVG=False):
    pattern_vector = np.zeros(word2vec.layer1_size)
    n_words = 0
    if len(tokens) > 1:
        for t in tokens:
            try:
                vector = word2vec[t.strip()]
                pattern_vector = np.add(pattern_vector,vector)
                n_words += 1
            except KeyError, e:
                continue
        if AVG is True:
            pattern_vector = np.divide(pattern_vector,n_words)
    elif len(tokens) == 1:
        try:
            pattern_vector = word2vec[tokens[0].strip()]
        except KeyError:
            pass
    return pattern_vector


def main():
    print "Loading …
Run Code Online (Sandbox Code Playgroud)

cosine-similarity word2vec sentence-similarity

7
推荐指数
1
解决办法
3842
查看次数

在非标准上下文中使用三引号创建“文档字符串”是一个好习惯吗?

我正在查看某人的代码,其中到处都有这种“文档字符串”:

SLEEP_TIME_ON_FAILURE = 5
"""Time to keep the connection open in case of failure."""

SOCKET_TIMEOUT = 15
"""Socket timeout for inherited socket."""

...
Run Code Online (Sandbox Code Playgroud)

根据 Python 文档,文档字符串仅适用于模块、类或方法开头的上下文。

上述不规范做法意味着什么?为什么 Python 允许这样做?这对性能没有影响吗?

python comments docstring pep8

7
推荐指数
1
解决办法
2274
查看次数

支持非线性内核和多标签的SVM实现

我正在寻找支持非线性内核和一对多方案的SVM实现,以执行多标签分类.最好用Python编写,或者我可以用Python用包装器调用.

我正在研究sklearn,有两种实现使用SVM进行分类:

sklearn.svm.LinearSVC - 支持使用one-rest-rest方案进行多标签分类,但它基于liblinear,因此仅支持线性内核.

sklearn.svm.SVC - 基于libsvm,支持非线性内核,但多标签分类是在一对一减少的情况下完成的,它为K-way训练K(K-1)/ 2二元分类器多类问题.

更多信息,请访问:http: //scikit-learn.org/stable/modules/multiclass.html

有谁知道任何其他直接支持多标签分类和非线性内核的SVM实现?

一种可能的解决方案也可能是根据sklearn.svm.SVC调整代码,以执行One-vs-Rest,这是否已经尝试过?

machine-learning svm nonlinear-functions scikit-learn multilabel-classification

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

quanteda:按行计算两个 DFM 之间的文本相似度

我有一个包含 2 个文本字段的数据框:评论和主帖子

基本上这是结构

         id  comment                        post_text
          1   "I think that blabla.."        "Why is blabla.."
          2   "Well, you should blabla.."    "okay, blabla.."
          3    ...
Run Code Online (Sandbox Code Playgroud)

我想计算第一行注释中的文本与第一行 post_text 中的文本之间的相似度,并对所有行执行此操作。据我所知,我必须为两种类型的文本创建单独的 dfm 对象

          corp1 <- corpus(r , text_field= "comment")
          corp2 <- corpus(r , text_field= "post_text")
          dfm1 <- dfm(corp1)
          dfm2 <- dfm(corp2)
Run Code Online (Sandbox Code Playgroud)

最后,我想获得这样的东西:

id  comment                     post_text          similarity
1   "I think that blabla.."     "Why is blabla.."  *similarity between comment1 and post_text1
2   "Well, you should blabla.." "okay, blabla.."  *similarity between comment2 and post_text2
3    ...
Run Code Online (Sandbox Code Playgroud)

我不知道如何继续,我在 …

nlp r similarity quanteda

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

如何在无监督聚类期间在sklearn中选择TfidfVectorizer中的参数

TfidfVectorizer提供了一种简单的方法来编码和将文本转换为矢量.

我的问题是如何选择适当的参数值,如min_df,max_features,smooth_idf,sublinear_tf?

更新:

也许我应该在这个问题上提出更多细节:

如果我使用大量文本进行无监督聚类,该怎么办?我没有任何文本标签,我不知道可能有多少集群(这实际上是我想弄清楚的)

python nlp tf-idf scikit-learn tfidfvectorizer

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

scikit-学习TfidfVectorizer忽略某些单词

我正在对来自葡萄牙历史的维基百科页面上的句子尝试TfidfVectorizer。但是我注意到该TfidfVec.fit_transform方法忽略了某些单词。这是我尝试过的句子:

sentence = "The oldest human fossil is the skull discovered in the Cave of Aroeira in Almonda."

TfidfVec = TfidfVectorizer()
tfidf = TfidfVec.fit_transform([sentence])

cols = [words[idx] for idx in tfidf.indices]
matrix = tfidf.todense()
pd.DataFrame(matrix,columns = cols,index=["Tf-Idf"])
Run Code Online (Sandbox Code Playgroud)

数据帧的输出:

在此处输入图片说明

本质上,它忽略了“ Aroeira”和“ Almonda”两个词。

但是我不想让它忽略那些话,那我该怎么办?我在文档中找不到他们谈论此内容的任何地方。

另一个问题是为什么“ the”一词会重复出现?该算法应该只考虑一个“ the”并计算其tf-idf吗?

python nlp tf-idf scikit-learn tfidfvectorizer

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