Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ab239aa

Browse files
Add support for regex queries (tokensregex/semgrex/tregex)
- Add endpoints for regex queries, they return dicts with string keys (not serialized)
1 parent 5308b96 commit ab239aa

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

‎corenlp/client.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import io
55
import os
66
import logging
7+
import json
78
import shlex
89
import subprocess
910
import time
@@ -200,4 +201,33 @@ def update(self, doc, annotators=None, properties=None):
200201
parseFromDelimitedString(doc, r.content)
201202
return doc
202203

204+
def tokensregex(self, text, pattern, filter=False):
205+
return self.__regex('/tokensregex', text, pattern, filter)
206+
207+
def semgrex(self, text, pattern, filter=False):
208+
return self.__regex('/semgrex', text, pattern, filter)
209+
210+
def tregrex(self, text, pattern, filter=False):
211+
return self.__regex('/tregex', text, pattern, filter)
212+
213+
def __regex(self, path, text, pattern, filter):
214+
"""Send a regex-related request to the CoreNLP server.
215+
:param (str | unicode) path: the path for the regex endpoint
216+
:param text: raw text for the CoreNLPServer to apply the regex
217+
:param (str | unicode) pattern: regex pattern
218+
:param (bool) filter: option to filter sentences that contain matches, if false returns matches
219+
:return: request result
220+
"""
221+
r = requests.get(
222+
self.endpoint + path, params={
223+
'pattern': pattern,
224+
'filter': filter,
225+
}, data=text)
226+
output = r.text
227+
try:
228+
output = json.loads(r.text)
229+
except:
230+
pass
231+
return output
232+
203233
__all__ = ["CoreNLPClient", "AnnotationException", "TimeoutException", "to_text"]

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /