小编Jos*_*lor的帖子

nltk 无法解释斯坦福解析器输出的语法类别 PRP$

我想根据从斯坦福解析器检索的语法生成句子,但 NLTK 无法解释 PRP$。

from nltk.parse.stanford import StanfordParser
from nltk.grammar import CFG
from nltk.parse.generate import generate

sp=StanfordParser(model_path='/home/aman/stanford_resource/stanford-parser-full-2014-06-16/stanford-parser-3.4-models/edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz',path_to_jar='/home/aman/stanford_resource/stanford-parser-full-2014-06-16/stanford-parser.jar',path_to_models_jar='/home/aman/stanford_resource/stanford-postagger-full-2014-08-27/stanford-postagger-3.4.1.jar')
sent1='He killed the tiger in his pants'
parse_result=sp.raw_parse(sent1)
grammar_list=[]

for p in parse_result:
    l=p.productions()
    grammar_string='\n'.join(map(str,l))
    grammar=CFG.fromstring(grammar_string)
    #grammar_list.append(grammar)
    #for s in generate(grammar,n=3):
    #    print s




ValueError: Unable to parse line 11: NP -> PRP$ NNS
Expected a nonterminal, found: $ NNS
Run Code Online (Sandbox Code Playgroud)

它怎么能工作。我是否应该专门针对这些语法类别指导 nltk。

python nltk stanford-nlp

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

exp是一种旧形式的expt吗?

我在Tanimoto的使用Common Lisp的人工智能元素中找到了这个:

; sample formula:
;
;  d     2
;  --   x  + 2x
;  dx

; represented by f0 as follows:
(setf  f0 '(d (+ (exp x 2) (* 2 x)) x))
Run Code Online (Sandbox Code Playgroud)

这难道不该是expt不是exp?这个程序,LEIBNIZ.lispexp在我认为它应该是的许多地方使用expt.我错过了什么?这只是历史问题吗?或者这是一个错误?

common-lisp

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

在SPARQL中循环

我有一个简单的问题。当我在DBpedia SPARQL端点上运行此查询时,我得到5个电影URI的列表:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 

select ?film {
?film rdf:type <http://schema.org/Movie>.

}
limit 5
Run Code Online (Sandbox Code Playgroud)

我正在尝试访问列表中每部电影的所有谓词和对象。我试过了,但是没有用。

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 

select ?film ?p ?o {
?film rdf:type <http://schema.org/Movie>;
      ?p ?o.
}
group by ?film
limit 5
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

rdf semantic-web sparql dbpedia semantics

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

在Lisp中将数字从某个基数转换为基数10

如何在Lisp中将数字从某个基数转换为基数10?是否有任何defaut功能可以做到这一点,如果不是我怎么能补充该功能?

lisp base common-lisp

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

如何以不推荐的方式使用owlapi获取本体中定义的所有类

如何在Java中使用owlapi找到所有已定义的类?我知道不推荐使用的getClassesInSignature方法,但是文档(JavaDocs)缺少方面,应该使用什么代替?

java owl stream owl-api

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

对任意(通用)对象的引用

我一直在尝试用Java模拟Python列表; 即,维护一个动态数组,可以同时存储不同类型的对象.Java中是否有任何方法可以使用通用对象引用,即可以指向任何类型的对象,用户定义或内置的对象引用?

java

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

slime仅在被调用函数结束时打印my(format ...)调用

我安装了emacs + sbcl + slime.我定义了这个功能

(defun jugar ()
  (let* ((nodoActual *nodo-inicial*)
         (estadoActual (nodo-estado nodoActual))
         (timeStart nil)
         (timeEnd nil)
         )
    (loop while (not (es-estado-final estadoActual)) do
          (setf *hojas* 0)
          (setf timeStart (get-universal-time))
          (setf nodoActual (decision-minimax nodoActual *profundidad* timeStart))
          (setf timeEnd (get-universal-time))
          (setf estadoActual (nodo-estado nodoActual))
          (imprime-en-fichero estadoActual)
          (format t "Hojas analizadas:     ~a  ~%" *hojas*)
          (format t "Tiempo empleado:     ~a  ~%~%" time))   
    ))
Run Code Online (Sandbox Code Playgroud)

进行一系列调用并在循环中打印一些变量.

问题是当我(jugar)*slime-repl sbcl*缓冲区调用时,提示等待直到(jugar)执行结束以显示所有(format …)在一起.我从一个终端(运行sbcl)尝试了同样的方法并且运行良好,所以我猜这是与emacs或slime相关的东西.我该如何解决?

emacs sbcl flush common-lisp slime

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

语法错误(标识符后的多个表达式)

我正在编写一个函数,try-weak-cues用于从大量响应中选择响应.该程序本质上是与用户的对话.

(define try-weak-cues
        (lambda (sentence context)
        (define helper
           (lambda(list-of-pairs)
          (define helper2
            (lambda(list-of-pairs context)
              (cond((null? list-of-pairs)
                  (cond((null? list-of-pairs) '())
                       ((any-good-fragments?(cue-part(car list-of-pairs))sentence) (helper2(cdr(car list-of-pairs))context))
                        (else(helper(cdr list-of-pairs)))))))))
                       (helper *weak-cues*))))
Run Code Online (Sandbox Code Playgroud)

下面是该函数应该从中获取的响应列表:

 (define *weak-cues*
  '( ( ((who) (whos) (who is))
       ((first-base)
           ((thats right) (exactly) (you got it)
        (right on) (now youve got it)))
       ((second-base third-base)
           ((no whos on first) (whos on first) (first base))) )
     ( ((what) (whats) (what is))
       ((first-base third-base)
       ((hes on second) (i told you whats on second)))
       ((second-base)
       ((right) …
Run Code Online (Sandbox Code Playgroud)

lisp scheme racket

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

LISP - 获取列表的最后列表

我试图找出如何从另一个列表中获取最后一个(非空)列表,或者nil如果没有这样的列表(递归)则返回.这是一个家庭作业,因此我正在寻找方法的帮助,不一定是它的代码.例:

(lastele '(1 (2 3) 4 5))  ;=> (2 3)
(lastele '(1 (2 3) (4 5)) ;=> (4 5)
(lastele '(1 2 3 4 5))    ;=> NIL
Run Code Online (Sandbox Code Playgroud)

我试图浏览列表,如果我遇到一个子列表,我会检查列表的其余部分是否包含更多的非空子列表,如果是,则继续将列表设置为该列表,并重复直到我们有一个空列表.

(defun lastele2 (L)
  (if (null L)
    '()
    (if (hasMoreLists (rest L))
      (lastele2 (rest L))
      (first L))))
Run Code Online (Sandbox Code Playgroud)

但是,似乎我无法hasMoreLists上班.返回tf内部只是错误.这是解决这个问题的最好方法吗?

lisp recursion list common-lisp

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

这个函数是Tail-Recursive吗?方案

以下函数是尾递归的吗?如果没有,我可以做些什么来修改它?

(define (euclids-alg n1 n2)
 (cond((= n1 0) n2)
      ((= n2 0) n1)
      ((= n1 n2) n1)
      ((> n1 n2) (euclids-alg (- n1 n2) n2))
      ((< n1 n2) (euclids-alg n1 (- n2 n1))))) 
Run Code Online (Sandbox Code Playgroud)

recursion scheme tail-recursion racket

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