Nltk: مشاكل DependencyGraph أو Stanford Parser API مع الجمل ذات "/"

تم إنشاؤها على ١٨ نوفمبر ٢٠١٦  ·  31تعليقات  ·  مصدر: nltk/nltk

أبلغ أحد المستخدمين عن إلقاء هذه الجملة و AssertionError عند استخدام واجهة برمجة تطبيقات Stanford DependencyParser في NLTK لهذه الجملة:

على الرغم من كل رؤى الفيلم حول عالم أحلام المراهقين ، وتعبيره الإلكتروني من خلال الثقافة الإلكترونية ، فإن الفيلم لا يرضي أي شخص يسعى إلى إخراج قصة متماسكة من وقت عرضه الذي يستغرق ساعتين ونصف.

الشفرة:

>>> from nltk.parse.stanford import StanfordDependencyParser                                                                                       >>> dep_parser=StanfordDependencyParser(model_path="edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz")                                        
>>> sent = 'for all of its insights into the dream world of teen life , and its electronic expression through cyber culture , the film gives no quarter to anyone seeking to pull a cohesive story out of its 2 1/2-hour running time . '
>>> dep_parser.raw_parse(sent)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/nltk/parse/stanford.py", line 132, in raw_parse
    return next(self.raw_parse_sents([sentence], verbose))
  File "/Library/Python/2.7/site-packages/nltk/parse/stanford.py", line 150, in raw_parse_sents
    return self._parse_trees_output(self._execute(cmd, '\n'.join(sentences), verbose))
  File "/Library/Python/2.7/site-packages/nltk/parse/stanford.py", line 91, in _parse_trees_output
    res.append(iter([self._make_tree('\n'.join(cur_lines))]))
  File "/Library/Python/2.7/site-packages/nltk/parse/stanford.py", line 339, in _make_tree
    return DependencyGraph(result, top_relation_label='root')
  File "/Library/Python/2.7/site-packages/nltk/parse/dependencygraph.py", line 84, in __init__
    top_relation_label=top_relation_label,
  File "/Library/Python/2.7/site-packages/nltk/parse/dependencygraph.py", line 328, in _parse
    assert cell_number == len(cells)
AssertionError

من المحتمل أن تكون الطريقة التي يقرأ بها DependencyGraph الإخراج أو أن ناتج ستانفورد غير متسق.

مزيد من التفاصيل حول إعداد أدوات NLTK + Stanford على https://gist.github.com/alvations/e1df0ba227e542955a8a#stanford -parser

bug dependency parsing pleaseverify

التعليق الأكثر فائدة

dimazest تم حل المشكلة. شكرًا لك على مساعدتك وصبرك طوال هذا الوقت!

ال 31 كومينتر

مرحبًا alvations هل من تحديثات على هذا؟
شكر

@ hoavt-54 أعتقد أن هناك طريقة سريعة للتحقق مما إذا كان جانب ستانفورد أم رمز DependencyGraph يسبب المشكلة باستخدام الواجهة الجديدة من # 1249. سأكون مشغولاً قليلاً اليوم ولكن ربما يمكن لشخص آخر التحقق من ذلك والعودة إلى هذا.

يمكنني إلقاء نظرة ، بطريقة ما فاتني هذه المشكلة.

dimazest مرحبًا ، لقد واجهت هذا الخطأ للتو. كيف يجب أن أصلح هذا؟

tesslocl ما هو

dimazest فعلت للتو

Traceback (most recent call last):
  File "C:\Users\Admin\Anaconda3\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 386, in _make_request
    six.raise_from(e, None)
  File "<string>", line 2, in raise_from
  File "C:\Users\Admin\Anaconda3\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 382, in _make_request
    httplib_response = conn.getresponse()
  File "C:\Users\Admin\Anaconda3\lib\http\client.py", line 1198, in getresponse
    response.begin()
  File "C:\Users\Admin\Anaconda3\lib\http\client.py", line 297, in begin
    version, status, reason = self._read_status()
  File "C:\Users\Admin\Anaconda3\lib\http\client.py", line 258, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "C:\Users\Admin\Anaconda3\lib\socket.py", line 576, in readinto
    return self._sock.recv_into(b)
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Admin\Anaconda3\lib\site-packages\requests\adapters.py", line 423, in send
    timeout=timeout
  File "C:\Users\Admin\Anaconda3\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 649, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "C:\Users\Admin\Anaconda3\lib\site-packages\requests\packages\urllib3\util\retry.py", line 347, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "C:\Users\Admin\Anaconda3\lib\site-packages\requests\packages\urllib3\packages\six.py", line 686, in reraise
    raise value
  File "C:\Users\Admin\Anaconda3\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "C:\Users\Admin\Anaconda3\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 388, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "C:\Users\Admin\Anaconda3\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 308, in _raise_timeout
    raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value)
requests.packages.urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='localhost', port=9000): Read timed out. (read timeout=60)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "E:\classifier\feature_extraction.py", line 473, in <module>
    print(feature_extraction(test_file_id))
  File "E:\classifier\feature_extraction.py", line 146, in feature_extraction
    for line in dep_parse:
  File "C:\Users\Admin\Anaconda3\lib\site-packages\nltk\parse\corenlp.py", line 279, in raw_parse_sents
    parsed_data = self.api_call(sentence, properties=default_properties)
  File "C:\Users\Admin\Anaconda3\lib\site-packages\nltk\parse\corenlp.py", line 247, in api_call
    timeout=60,
  File "C:\Users\Admin\Anaconda3\lib\site-packages\requests\sessions.py", line 535, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "C:\Users\Admin\Anaconda3\lib\site-packages\requests\sessions.py", line 488, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\Admin\Anaconda3\lib\site-packages\requests\sessions.py", line 609, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\Admin\Anaconda3\lib\site-packages\requests\adapters.py", line 499, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPConnectionPool(host='localhost', port=9000): Read timed out. (read timeout=60)

لقد قمت فقط بتغيير جزء StanfordDependencyParser وترك باقي الكود دون تغيير. لقد راجعت المستندات وأفترض أن الأساليب في CoreNLP هي نفسها ، هل أنا على صواب؟ يبدو أن التحليل كان ناجحًا لأن الخطأ موجود في السطر التالي حيث أقوم بتكرار نتائج التحليل.

تحتاج إلى بدء تشغيل خادم cornlp ، جرب:

with CoreNLPServer(port=9000) as server:
    parser = CoreNLPParser(url=server.url)
    parser.parse(...)

أنا آسف على المستندات المفقودة ، وعلى رد القميص ، لأنني أكتب على هاتفي.

dimazest أقدر حقًا مساعدتك

Traceback (most recent call last):
  File "E:\classifier\feature_extraction.py", line 474, in <module>
    print(feature_extraction(test_file_id))
  File "E:\classifier\feature_extraction.py", line 135, in feature_extraction
    with CoreNLPServer(port=9000) as server:
  File "C:\Users\Admin\Anaconda3\lib\site-packages\nltk\parse\corenlp.py", line 81, in __init__
    try_port(port)
  File "C:\Users\Admin\Anaconda3\lib\site-packages\nltk\parse\corenlp.py", line 35, in try_port
    sock.bind(('', port))
OSError: [WinError 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted

حاولت استخدام googling ولكني لا أعرف كيف تعمل المقابس ...

يمكنك تجربة منفذ آخر: CoreNLPServer (المنفذ = 9001) ، على سبيل المثال أو CoreNLPServer () فقط ، ثم يجب اختيار منفذ مجاني.

dimazest لقد جربت 9001 حتى 9010 وكذلك أقواس فارغة وهذا ما أحصل عليه في كل مرة:

Traceback (most recent call last):
  File "E:\classifier\feature_extraction.py", line 509, in <module>
    print(feature_extraction(test_file_id))
  File "E:\classifier\feature_extraction.py", line 136, in feature_extraction
    with CoreNLPServer() as server:
  File "C:\Users\Admin\Anaconda3\lib\site-packages\nltk\parse\corenlp.py", line 170, in __enter__
    self.start()
  File "C:\Users\Admin\Anaconda3\lib\site-packages\nltk\parse\corenlp.py", line 149, in start
    'Could not connect to the server.'
nltk.parse.corenlp.CoreNLPServerError: Could not connect to the server.

بالنظر إلى أنني في الصين ، فقد حافظت على تشغيل VPN الخاص بي أثناء تشغيله ، لكن لم يحالفني الحظ. ماذا قد تكون مشكلتي هنا؟

هل لديك corenlp .jars؟ يجب أن يكون لديك خادم corenlp يعمل محليًا.

هل يمكنك تشغيل هذا المثال https://github.com/nltk/nltk/pull/1249#pullrequestreview -18096061

لدي برطمانات تحت الدليل E:\classifier\stanford\stanford-corenlp-full-2016-10-31 وأعتقد أن هذه هي تلك التي أشرت إليها:

stanford-corenlp-3.7.0.jar
stanford-corenlp-3.7.0-javadoc.jar
stanford-corenlp-3.7.0-models.jar
stanford-corenlp-3.7.0-sources.jar

وتم تعيين الدليل على متغير البيئة CLASSPATH.

يمكنني تشغيل المثال في موجه أوامر windows وهذا هو الإخراج:

Python 3.5.3 |Anaconda custom (64-bit)| (default, Feb 22 2017, 21:28:42) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from nltk.parse.corenlp import *
>>> global server
>>> server = CoreNLPServer()
>>> server.start()
>>> parser = CoreNLPParser(url='http://localhost:9000')
>>> sent = 'the quick brown fox jumps over the lazy dog'
>>> parser.raw_parse(sent)
<list_iterator object at 0x000001F0EFED69E8>
>>> fox_parsed = next(parser.raw_parse(sent))
>>> fox_parsed.pretty_print()
                     ROOT
                      |
                      NP
       _______________|_________
      |                         NP
      |                _________|___
      |               |             PP
      |               |     ________|___
      NP              NP   |            NP
  ____|__________     |    |     _______|____
 DT   JJ    JJ   NN  NNS   IN   DT      JJ   NN
 |    |     |    |    |    |    |       |    |
the quick brown fox jumps over the     lazy dog

وعندما قمت بتشغيل هذا السطر ينبثق تنبيه أمان Windows server.start() ، وكنت أفكر أنه خطأ جدار الحماية طوال هذا الوقت ، لذلك ذهبت إلى إعدادات جدار الحماية للسماح لبرنامج Java (TM) Platform SE الثنائي من خلال جدار الحماية. اعتقدت أن هذا سيحل المشكلة ولكن عندما أعيد فتح المحرر وتشغيل الكود ، ما زلت أحصل على نفس الخطأ:

Traceback (most recent call last):
  File "E:\classifier\feature_extraction.py", line 503, in <module>
    print(feature_extraction(test_file_id))
  File "E:\classifier\feature_extraction.py", line 130, in feature_extraction
    with CoreNLPServer() as server:
  File "C:\Users\Admin\Anaconda3\lib\site-packages\nltk\parse\corenlp.py", line 170, in __enter__
    self.start()
  File "C:\Users\Admin\Anaconda3\lib\site-packages\nltk\parse\corenlp.py", line 149, in start
    'Could not connect to the server.'
nltk.parse.corenlp.CoreNLPServerError: Could not connect to the server.

بمجرد بدء تشغيل الخادم ، هل يمكنك الوصول إلى http: // localhost : 9000 في متصفحك؟

يمكنك أيضًا بدء تشغيل الخادم بنفسك ، ارجع إلى https://stanfordnlp.github.io/CoreNLP/corenlp-server.html

أحدهما يعمل ، ويمكنك الوصول إليه عبر المتصفح ، يجب أن تكون قادرًا على استخدام المحلل اللغوي:

parser = CoreNLPParser(url='http://localhost:9000')
# and so on

لمعرفة ذلك ، قمت بتشغيل المثال في موجه الأوامر مرة أخرى ولكن هذه المرة حصلت على الخطأ المألوف

Python 3.5.3 |Anaconda custom (64-bit)| (default, Feb 22 2017, 21:28:42) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from nltk.parse.corenlp import *
>>> global server
>>> server = CoreNLPServer()
>>> server.start()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Admin\Anaconda3\lib\site-packages\nltk\parse\corenlp.py", line 149, in start
    'Could not connect to the server.'
nltk.parse.corenlp.CoreNLPServerError: Could not connect to the server.
>>> server.start()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Admin\Anaconda3\lib\site-packages\nltk\parse\corenlp.py", line 149, in start
    'Could not connect to the server.'
nltk.parse.corenlp.CoreNLPServerError: Could not connect to the server.

... وليس لدي أي فكرة عما حدث بينهما. لم أغير أي تكوين.

كنت أرغب في نقل هذا المشروع إلى Linux منذ فترة طويلة ولكني ما زلت أتلقى الخطأ NLTK was unable to find ***.jar! Set the CLASSPATH environment variable على Linux. لقد قمت بتعيين CLASSPATH في /etc/environment و /etc/profile و ~/.bash_profile وحاولت نسخ هذه البرطمانات إلى $JAVA_HOME/lib/ لكن المشكلة لا تزال قائمة. هل يجب أن أفتح قضية أخرى؟

هل أنت قادر على بدء خادم corenlp من محطة طرفية (وليس من python) ، تحقق من https://stanfordnlp.github.io/CoreNLP/corenlp-server.html لمزيد من التفاصيل؟

# Run the server using all jars in the current directory (e.g., the CoreNLP home directory)
java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000
E:\classifier\stanford\stanford-corenlp-full-2016-10-31>java -mx4g -cp "E:\classifier\stanford\stanford-corenlp-full-2016-10-31" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000
Error: Could not find or load main class edu.stanford.nlp.pipeline.StanfordCoreNLPServer

E:\classifier\stanford\stanford-corenlp-full-2016-10-31>java -Xmx4g -cp "E:\classifier\stanford\stanford-corenlp-full-2016-10-31" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -serverProperties StanfordCoreNLP-chinese.properties -port 9000 -timeout 15000
Error: Could not find or load main class edu.stanford.nlp.pipeline.StanfordCoreNLPServer

E:\classifier\stanford\stanford-corenlp-full-2016-10-31>java -mx4g -cp "E:\classifier\stanford\stanford-corenlp-full-2016-10-31" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -timeout 15000
Error: Could not find or load main class edu.stanford.nlp.pipeline.StanfordCoreNLPServer

لا يبدو كذلك. أفعل ذلك الحق؟

أخيرًا حصلت على وحدات ستانفورد للعمل على Linux. باستخدام نفس سطور التعليمات البرمجية ، يبدو أن خادم CoreNLP يبدأ بدون مشكلة ولكني أحصل على أخطاء أخرى على السطر حيث أقوم بتكرار نتائج التحليل.

Traceback (most recent call last):
  File "/home/tesslo/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/connection.py", line 141, in _new_conn
    (self.host, self.port), self.timeout, **extra_kw)
  File "/home/tesslo/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/util/connection.py", line 83, in create_connection
    raise err
  File "/home/tesslo/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/util/connection.py", line 73, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/tesslo/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "/home/tesslo/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py", line 356, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/home/tesslo/anaconda3/lib/python3.5/http/client.py", line 1107, in request
    self._send_request(method, url, body, headers)
  File "/home/tesslo/anaconda3/lib/python3.5/http/client.py", line 1152, in _send_request
    self.endheaders(body)
  File "/home/tesslo/anaconda3/lib/python3.5/http/client.py", line 1103, in endheaders
    self._send_output(message_body)
  File "/home/tesslo/anaconda3/lib/python3.5/http/client.py", line 934, in _send_output
    self.send(msg)
  File "/home/tesslo/anaconda3/lib/python3.5/http/client.py", line 877, in send
    self.connect()
  File "/home/tesslo/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/connection.py", line 166, in connect
    conn = self._new_conn()
  File "/home/tesslo/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/connection.py", line 150, in _new_conn
    self, "Failed to establish a new connection: %s" % e)
requests.packages.urllib3.exceptions.NewConnectionError: <requests.packages.urllib3.connection.HTTPConnection object at 0x7f110a9c4940>: Failed to establish a new connection: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/tesslo/anaconda3/lib/python3.5/site-packages/requests/adapters.py", line 438, in send
    timeout=timeout
  File "/home/tesslo/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py", line 649, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/home/tesslo/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/util/retry.py", line 388, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
requests.packages.urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=9000): Max retries exceeded with url: /?properties=%7B%22annotators%22%3A+%22tokenize%2Cpos%2Clemma%2Cssplit%2Cdepparse%22%2C+%22outputFormat%22%3A+%22json%22%2C+%22ssplit.isOneSentence%22%3A+%22true%22%7D (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7f110a9c4940>: Failed to establish a new connection: [Errno 111] Connection refused',))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/media/tesslo/classifier/feature_extraction.py", line 503, in <module>
    print(feature_extraction(test_file_id))
  File "/media/tesslo/classifier/feature_extraction.py", line 142, in feature_extraction
    for line in dep_parse:
  File "/home/tesslo/anaconda3/lib/python3.5/site-packages/nltk/parse/corenlp.py", line 279, in raw_parse_sents
    parsed_data = self.api_call(sentence, properties=default_properties)
  File "/home/tesslo/anaconda3/lib/python3.5/site-packages/nltk/parse/corenlp.py", line 247, in api_call
    timeout=60,
  File "/home/tesslo/anaconda3/lib/python3.5/site-packages/requests/sessions.py", line 565, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "/home/tesslo/anaconda3/lib/python3.5/site-packages/requests/sessions.py", line 518, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/tesslo/anaconda3/lib/python3.5/site-packages/requests/sessions.py", line 639, in send
    r = adapter.send(request, **kwargs)
  File "/home/tesslo/anaconda3/lib/python3.5/site-packages/requests/adapters.py", line 502, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=9000): Max retries exceeded with url: /?properties=%7B%22annotators%22%3A+%22tokenize%2Cpos%2Clemma%2Cssplit%2Cdepparse%22%2C+%22outputFormat%22%3A+%22json%22%2C+%22ssplit.isOneSentence%22%3A+%22true%22%7D (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7f110a9c4940>: Failed to establish a new connection: [Errno 111] Connection refused',))

تشترك FYI Linux و Windows في نفس الأجهزة.

حسنًا ، هناك خطوتان متضمنتان:
1) ابدأ عملية CoreNLP Java. هناك طريقتان ، أقترح أن تبدأ يدويًا ، باستخدام الأمر java -Xmx4g -cp ... . هل نجحت في ذلك؟ يجب أن تكون قادرًا على الوصول إلى الخادم عبر متصفح عن طريق زيارة http: // localhost: 9000. يجب أن ترى في إخراج وحدة التحكم ، ما هو المنفذ المستخدم.
2) بمجرد تشغيل الخادم ، يمكنك إنشاء عميل CoreNLP python parser = CoreNLPParser(url='http://localhost:9000') . نظرًا لأنك بدأت خادم CoreNLP Java بنفسك ، فلن تحتاج إلى بدء تشغيله في جلسة Python (لا تقم بتشغيل server = CoreNLPServer() )

تشير رسائل الخطأ التي تنشرها إلى أن خادم CoreNLP Java لا يعمل.

فشلت:

tesslo<strong i="6">@TLU</strong>:/media/tesslo/classifier/stanford/stanford-corenlp-full-2016-10-31$ java -mx4g -cp "/media/tesslo/classifier/stanford/stanford-corenlp-full-2016-10-31" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000
Error: Could not find or load main class edu.stanford.nlp.pipeline.StanfordCoreNLPServer
tesslo<strong i="7">@TLU</strong>:/media/tesslo/classifier/stanford/stanford-corenlp-full-2016-10-31$ java -Xmx4g -cp "/media/tesslo/classifier/stanford/stanford-corenlp-full-2016-10-31" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -serverProperties StanfordCoreNLP-chinese.properties -port 9000 -timeout 15000
Error: Could not find or load main class edu.stanford.nlp.pipeline.StanfordCoreNLPServer
tesslo<strong i="8">@TLU</strong>:/media/tesslo/classifier/stanford/stanford-corenlp-full-2016-10-31$ java -mx4g -cp "/media/tesslo/classifier/stanford/stanford-corenlp-full-2016-10-31" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -timeout 15000
Error: Could not find or load main class edu.stanford.nlp.pipeline.StanfordCoreNLPServer

و http: // localhost : 9000 يظهر خطأ ERR_CONNECTION_REFUSED

هل جربته باستخدام "*" كمسار صف: j ava -mx4g -cp "*" ... ؟

مرحبًا ، يبدو أنني واجهت هذه المشكلة أيضًا. جملتي هي:
"ربما ، سلك قدم 2 21/2؟" ، وهو ذو جودة أرخص من جزء الشاحن الذي يتم توصيل USB الصغير به ... "
وحاولت معرفة أنه يبدو أن "/" تسبب هذا الخطأ.

caisinong هل حاولت استخدام واجهة CoreNLP الجديدة؟ انظر تعليقاتي أعلاه.

dimazest آسف على التأخير. لقد فعلت الآن:

tesslo<strong i="7">@TLU</strong>:/media/tesslo/classifier/stanford/stanford-corenlp-full-2016-10-31$ java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000
[main] INFO CoreNLP - --- StanfordCoreNLPServer#main() called ---
[main] INFO CoreNLP - setting default constituency parser
[main] INFO CoreNLP - warning: cannot find edu/stanford/nlp/models/srparser/englishSR.ser.gz
[main] INFO CoreNLP - using: edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz instead
[main] INFO CoreNLP - to use shift reduce parser download English models jar from:
[main] INFO CoreNLP - http://stanfordnlp.github.io/CoreNLP/download.html
[main] INFO CoreNLP -     Threads: 2
[main] INFO CoreNLP - Starting server...
[main] INFO CoreNLP - StanfordCoreNLPServer listening at /0:0:0:0:0:0:0:0:9000

يمكنني زيارة http: // localhost : 9000 الآن ، ولكن بالعودة إلى المحرر ، ما زلت أتلقى هذا الخطأ على السطر الذي يبدأ تشغيل الخادم:

Traceback (most recent call last):
  File "/media/tesslo/classifier/feature_extraction.py", line 503, in <module>
    print(feature_extraction(test_file_id))
  File "/media/tesslo/classifier/feature_extraction.py", line 130, in feature_extraction
    with CoreNLPServer() as server:
  File "/home/tesslo/anaconda3/lib/python3.5/site-packages/nltk/parse/corenlp.py", line 170, in __enter__
    self.start()
  File "/home/tesslo/anaconda3/lib/python3.5/site-packages/nltk/parse/corenlp.py", line 149, in start
    'Could not connect to the server.'
nltk.parse.corenlp.CoreNLPServerError: Could not connect to the server.

بمجرد بدء تشغيل الخادم يدويًا ، لن تحتاج إلى بدء تشغيل الخادم في الكود.

استمر في تشغيل الخادم وقم بإنشاء مثيل للمحلل اللغوي:

parser = CoreNLPParser(url='http://localhost:9000')

dimazest تم حل المشكلة. شكرًا لك على مساعدتك وصبرك طوال هذا الوقت!

لدي تجربة مماثلة. يعد بدء تشغيل خادم Stanford CorenNLP في الكود أمرًا فوضويًا ويجب استخدامه فقط لأغراض الاختبار. ربما لا ينبغي لنا بطريقة ما الكشف عن ذلك للمستخدم.

أنا سعيد لأن الأشياء تعمل. في الواقع ، يجب بدء تشغيل الخادم خارج كود Python.

مصححة وحلها بواسطة CoreNLP API الجديد =)

dimazest مرحبًا ... إذا كان النص يحتوي على حل \ أو / لـ Assertion Error هو استخدام Core NLP فقط؟ أنا أستخدم stanford-parser-full-2017-06-09
الجملة المستخدمة في التحليل كانت Iraqi security forces drove Islamic State fighters from the centre of a town just south of the militants\' main stronghold of Mosul on Saturday and reached within a few km (miles) of an airport on the edge of the city, a senior commander said.

@ kavin26 نعم ، الرجاء استخدام nltk.parse.corenlp.CoreNLPParser .

alvations شكرا جزيلا لك: +1:

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

stevenbird picture stevenbird  ·  3تعليقات

jeryini picture jeryini  ·  5تعليقات

mwess picture mwess  ·  5تعليقات

Chris00 picture Chris00  ·  3تعليقات

chaseireland picture chaseireland  ·  3تعليقات