рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдпрд╣ рдореБрджреНрджрд╛ рдЙрддрдирд╛ рдЧрдВрднреАрд░ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рдХрд┐ рдпрд╣ рдЙрддреНрд╕реБрдХ рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЬрдм рдПрдирдПрд▓рдЯреАрдХреЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХрд┐рд╕реА рднреА рдХреЙрд▓ рдХреЛ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкрд╛рдпрдерди рдЙрдкрдкреНрд░рдХрд╛рд░ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЛрдб:
from multiprocessing import Process
import nltk
import time
def child_fn():
print "Fetch URL"
import urllib2
print urllib2.urlopen("https://www.google.com").read()[:100]
print "Done"
while True:
child_process = Process(target=child_fn)
child_process.start()
child_process.join()
print "Child process returned"
time.sleep(1)
рдЗрд╕реЗ рдЖрдпрд╛рддрд┐рдд NLTK рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдПрдВ, рдФрд░ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ urlopen () рдХреЙрд▓ рдХрднреА рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред import nltk
рд▓рд╛рдЗрди рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ, рдФрд░ рдпрд╣ рдареАрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдХреНрдпреЛрдВ?
* рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрд╣ рдкрд╛рдпрдерди 2 рдХреЗ рд▓рд┐рдП рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрднреА рддрдХ 3 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдорд┐рд▓рддрд╛ рд╣реИ?
рдирд╣реАрдВред рдореИрдВ рдПрдХ рдбрд╛рд▓ try .. except:
рдЪрд╛рд░реЛрдВ рдУрд░ рдЦрдВрдб import urllib2; print...
рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рднреА рди рдорд┐рд▓рд╛ред
рдореИрдВ рдареАрдХ рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реВрдБред рдореИрдВрдиреЗ рдЕрднреА рдПрдХ SO рдкреНрд░рд╢реНрди рдЦреЛрд▓рд╛ рд╣реИ рдЬреЛ рдпрд╣рд╛рдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: http://stackoverflow.com/questions/30766419/python-child-process-silently-crashes-when-issuing-an-ttp-request
рдмрдЪреНрдЪреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдЧреЗ рдХреА рд╕реВрдЪрдирд╛ рдХреЗ рдмрд┐рдирд╛ рдЪреБрдкрдЪрд╛рдк рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рд░рд╣реА рд╣реИред
рдореИрдВ рдЖрдкрд╕реЗ @ oxymor0n рд╕реЗ рдЕрд╕рд╣рдордд
The child process is indeed crashing silently without further notice.
рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рднреА рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ: nltk, gunicorn (рдкреНрд░реАрдлрд╝реЙрд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП nltk рдХреЗ рд╕рд╛рде), рдФрд░ рдлреНрд▓рд╛рд╕реНрдХред
Nltk рдЖрдпрд╛рдд рдирд┐рдХрд╛рд▓реЗрдВ, рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╕рд┐рд╡рд╛рдп nltkред
/ cc @escherba
@ninowalker , @ oxymor0n рдпрд╣ рдЕрдЬреАрдм рд╣реИ, рдореЗрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдХреЛрдб рдХреЗ рд╕рд╛рде рдареАрдХ рдЪрд▓рддреА рд╣реИрдВ, рдореБрдЭреЗ рдорд┐рд▓рддреА рд╣реИрдВ:
Fetch URL
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="de"><head><meta content
Done
Child process returned
Fetch URL
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="de"><head><meta content
Done
Child process returned
Fetch URL
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="de"><head><meta content
Done
Child process returned
Fetch URL
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="de"><head><meta content
Done
Child process returned
Fetch URL
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="de"><head><meta content
Done
Child process returned
Fetch URL
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="de"><head><meta content
Done
Child process returned
Fetch URL
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="de"><head><meta content
Done
Child process returned
рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рд╣реИ, рд╣реИ рдирд╛?
рдЗрд╕рд╕реЗ рдореЗрд░рд╛ рдЕрдиреБрд░реЛрдз рднреА рдирд╣реАрдВ рдЯреВрдЯрддрд╛:
alvas<strong i="13">@ubi</strong>:~$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from multiprocessing import Process
>>> import requests
>>> from pprint import pprint
>>> Process(target=lambda: pprint(
... requests.get('https://api.github.com'))).start()
>>> <Response [200]>
>>> import nltk
>>> Process(target=lambda: pprint(
... requests.get('https://api.github.com'))).start()
>>> <Response [200]>
рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
рдореИрдВ рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛, рдЬреЛ @Hiestaa рдХреЗ рдкрд╛рд╕ рдереАред рдореЗрд░реЗ рдкрд╛рд╕ рд╕рд╣рд╛рдпрдХ рдлрд╝рд╛рдЗрд▓ string_util.python рд╣реИ рдЬреЛ nltk рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рдЕрдЬрдЧрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдорд▓реНрдЯреА-рдкреНрд░реЛрд╕реЗрд╕ рдХреНрд░реЙрд▓рд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд▓рдХреНрд╖рдг рдпрд╣ рд╣реИ рдХрд┐ рдмрдЪреНрдЪреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╕ рдЕрдЯрдХ рдЬрд╛рддреА рд╣реИ рдФрд░ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рд╣реИ (рдЕрдкрд╡рд╛рдж рд╕рдВрджреЗрд╢ рднреА рдирд╣реАрдВ)ред
Nltk- рд╕рдВрдмрдВрдзрд┐рдд рдЖрдпрд╛рдд рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред
рд╡рд┐рд╡рд░рдг:
рдУрдПрд╕: рдпреЛрд╕реЗрдорд╛рдЗрдЯ 10.10.5
рдЕрдЬрдЧрд░: 2.7.10
рдкреГрд╖реНрда рдХреА рд╕рд╛рдордЧреНрд░реА рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ: рдореИрдВрдиреЗ рд╢реБрд░реВ рдореЗрдВ urllib2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдлрд┐рд░ рдмрд╛рдж рдореЗрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ред
рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдЧрдВрднреАрд░ рдмрдЧ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЗрд╕рдореЗрдВ рдХрджрдо рд░рдЦ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдЙрддреНрдкрд╛рджрди рд╕реНрддрд░ рдПрдирдПрд▓рдкреА рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рдо Rq (http://python-rq.org/) рд╢реНрд░рдорд┐рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХрдИ рдПрдирдПрд▓рдкреА рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдЪреБрдкрдЪрд╛рдк рдорд╛рд░реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЬрд▓реНрдж рд╣реА рдХреЛрдИ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ред рдзрдиреНрдпрд╡рд╛рдж!
@ рд╕рд╕рд┐рдВрдбрд╛ : рдЖрдк nltk-dev рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдкрд░ рдПрдХ рдХреЙрд▓ рдбрд╛рд▓рдирд╛ рдкрд╕рдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреБрдЫ рдзреНрдпрд╛рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВред
@sasinda рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ Rq рдмрд┐рд▓реНрдХреБрд▓ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рджрди рд╕реНрддрд░ NLP рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдореИрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдФрд░ рдкреГрдердХ рдЕрдЬрдЧрд░ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдЬрдЧрд░ рдХреЛ рдХрднреА рдХрд╛рдВрдЯрд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдиреЗрд▓реНрдЯрдХ рд╕реЗ рдореВрдХ рджреБрд░реНрдШрдЯрдирд╛ рдХрднреА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд╢рд╛рдпрдж рдЗрд╕ рдмреАрдЪ рдорджрдж рдорд┐рд▓ рд╕рдХрддреА рд╣реИред
рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рд╕реНрддрд░ рдкрд░ рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
def split(words):
import nltk
return nltk.word_tokenize(words)
рдФрд░ рдпрд╣ рдирд╣реАрдВ рд╣реИ:
import nltk
def split(words):
return nltk.word_tokenize(words)
рдзрдиреНрдпрд╡рд╛рдж @mpenkovред рдХреНрдпрд╛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ?
@stevenbird рдореБрдЭреЗ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ред рдпрд╣ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдареАрдХ рдирд╣реАрдВ рд╣реИред
IMHO, рдпрджрд┐ рдХрд┐рд╕реА рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЖрдпрд╛рдд рдХрд░рдирд╛ рдкрд╛рдпрдерди рд╕реНрдЯреИрдВрдбрд░реНрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдШрдЯрдХ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ, рддреЛ рдХреБрдЫ рдЕрдкрд╡рд┐рддреНрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
@mpenkov рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдПрдХ рдФрд░ рд╕рдорд╛рдзрд╛рди рдореБрдЭреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рд╕рд▓рд╛рдореА рдмрд▓реНрд▓реЗрдмрд╛рдЬ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред @ Oxymor0n рдХрд╛ рдореВрд▓ рдХреЛрдб рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛:
from multiprocessing import Process
import nltk
import time
import urllib2
# HACK
urllib2.build_opener(urllib2.HTTPHandler())
def child_fn():
print "Fetch URL"
import urllib2
print urllib2.urlopen("https://www.google.com").read()[:100]
print "Done"
while True:
child_process = Process(target=child_fn)
child_process.start()
child_process.join()
print "Child process returned"
time.sleep(1)
@mpenkov @ninowalker , @ oxymor0n @sasinda @wenbowang рдХреНрдпрд╛ рдЖрдк рд╕рднреА рдЕрднреА рднреА рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рдореИрдВ рдЕрдкрдиреА рдорд╢реАрди рдкрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЛрд╣рд░рд╛ рдирд╣реАрдВ рд╕рдХрддрд╛:
from multiprocessing import Process
import nltk
import time
def child_fn():
print "Fetch URL"
import urllib2
print urllib2.urlopen("https://www.google.com").read()[:100]
print "Done"
while True:
child_process = Process(target=child_fn)
child_process.start()
child_process.join()
print "Child process returned"
time.sleep(1)
рдореБрдЭреЗ рджреЗрддрд╛ рд╣реИ:
Fetch URL
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-SG"><head><meta cont
Done
Child process returned
Fetch URL
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-SG"><head><meta cont
Done
Child process returned
Fetch URL
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-SG"><head><meta cont
Done
рдореИрдВ рдЪрд╛рд▓реВ рд╣реВрдБ:
@alvations рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ
рдореИрдВ рдпрд╣ рднреА рднреВрд▓ рдЧрдпрд╛ рдХрд┐ рдХрд┐рд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЖрдзрд╛рд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддрд╛ рдХрд┐ рдореБрдЭреЗ рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдорд╛рдлрд╝ рдХрд░рдирд╛!
@alvations рдореБрдЭреЗ рдпрд╣ рднреА рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореЗрд░реА рдХреМрди рд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдЗрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореБрджреНрджреЛрдВ рд╕реЗ рдкреАрдбрд╝рд┐рдд рд╣реИрдВред
рдореИрдВрдиреЗ рдЖрдкрдХреА рдорд╢реАрди рдкрд░ рдЕрдкрдирд╛ рдХреЛрдб рдЪрд▓рд╛рдпрд╛ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЛрд╣рд░рд╛ рдирд╣реАрдВ рд╕рдХрд╛ред
рдкрд╛рдпрдерди 2.7.12
nltk 3.2.1
macOS 10.12.6
@alvations рдореИрдВ рднреА рдЕрдм рдЙрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдЙрди рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред
рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдХреЛрдб рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдореЗрд░реЗ рд▓рд┐рдП рдЪрд╛рдЗрд▓реНрдб рдкреНрд░реЛрд╕реЗрд╕ рд╕реЗрдЧрдореЗрдВрдЯ рдлреЙрд▓реНрдЯ (рдПрдХреНрдЬрд┐рдЯ рдХреЛрдб 11) рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ (рд▓рд╛рдЗрди рдкрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ: urllib2.urlopen ("https://www.google.com") .read () [: 100])
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ urllib3 (https://urllib3.readthedocs.io/en/latest/) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ред
рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдпрд╣ рдореБрджреНрджрд╛ macOS рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ 3.6 рдЕрдм рддрдХ,
Python3 рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдУрдкреА рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ:
from multiprocessing import Process
import nltk
import time
def child_fn():
from urllib.request import urlopen
print("Fetch URL")
print(urlopen("https://www.google.com").read()[:100])
print("Done")
child_process = Process(target=child_fn)
child_process.start()
child_process.join()
print("Child process returned")
time.sleep(1)
рдЖрдЙрдЯрдкреБрдЯ:
Fetch URL
Child process returned
рдЙрдкрдкреНрд░рдХрд╛рд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдХреНрд╡рд┐рдЯ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдкреЛрд╕реНрдЯ рдореЗрдВ рджреЗрдЦреЗ рдЧрдП рд╕рдорд╛рди рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рджрд┐рдорд╛рдЧ рд╡рд╛рд▓рд╛ рд╣реИред рдпрд╣ MacOS рдкрд░ рдереНрд░реЗрдб рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВ nltk рд╕реЗ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрдВрдзрд╛ рдкреНрд░рд╣рд╛рд░ рдХрд┐рдпрд╛ рдХрд┐ рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ / рдлреЗрд▓ рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдХреНрдпрд╛ рдерд╛ред рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдкреИрдХреЗрдЬ __init__.py
рдХрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
рд╡рд┐рд╡рд░рдг (рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ)
###########################################################
# TOP-LEVEL MODULES
###########################################################
# Import top-level functionality into top-level namespace
from nltk.collocations import *
from nltk.decorators import decorator, memoize
# from nltk.featstruct import *
# from nltk.grammar import *
from nltk.probability import *
from nltk.text import *
# from nltk.tree import *
from nltk.util import *
from nltk.jsontags import *
# ###########################################################
# # PACKAGES
# ###########################################################
# from nltk.chunk import *
# from nltk.classify import *
# from nltk.inference import *
from nltk.metrics import *
# from nltk.parse import *
# from nltk.tag import *
from nltk.tokenize import *
from nltk.translate import *
# from nltk.sem import *
# from nltk.stem import *
# Packages which can be lazily imported
# (a) we don't import *
# (b) they're slow to import or have run-time dependencies
# that can safely fail at run time
from nltk import lazyimport
app = lazyimport.LazyModule('nltk.app', locals(), globals())
chat = lazyimport.LazyModule('nltk.chat', locals(), globals())
corpus = lazyimport.LazyModule('nltk.corpus', locals(), globals())
draw = lazyimport.LazyModule('nltk.draw', locals(), globals())
toolbox = lazyimport.LazyModule('nltk.toolbox', locals(), globals())
# Optional loading
try:
import numpy
except ImportError:
pass
else:
from nltk import cluster
# from nltk.downloader import download, download_shell
# try:
# from six.moves import tkinter
# except ImportError:
# pass
# else:
# try:
# from nltk.downloader import download_gui
# except RuntimeError as e:
# import warnings
# warnings.warn("Corpus downloader GUI not loaded "
# "(RuntimeError during import: %s)" % str(e))
# explicitly import all top-level modules (ensuring
# they override the same names inadvertently imported
# from a subpackage)
# from nltk import ccg, chunk, classify, collocations
# from nltk import data, featstruct, grammar, help, inference, metrics
# from nltk import misc, parse, probability, sem, stem, wsd
# from nltk import tag, tbl, text, tokenize, translate, tree, treetransforms, util
рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рдЕрдХреНрд╖рдо рдЖрдпрд╛рдд рдЕрдВрддрддрдГ tkinter
рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореВрд▓ рдХрд╛рд░рдг рд╣реИред рдпрджрд┐ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ import nltk
import tkinter
import nltk
рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдорд╛рди рджреБрд░реНрдШрдЯрдирд╛ рд░рд┐рдкреЛрд░реНрдЯ рдорд┐рд▓рддреА рд╣реИ, рджреЛрдиреЛрдВ рд╕рдВрджрд░реНрднрд┐рдд рдЯрд┐рдВрдХрд░ред
рдореИрдВ рдЬреЛ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдЙрд╕рд╕реЗ рдпреЗ рдкреИрдХреЗрдЬ рд╕реАрдзреЗ tkinter
рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ:
nltk.app
nltk.draw
nltk.sem
рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рд▓реЗрдХрд░ рдореБрдЦреНрдп рдкреИрдХреЗрдЬ __init__
, рдпреЗ рд╕рдорд╕реНрдпрд╛рддреНрдордХ рдЖрдпрд╛рдд рд╣реИрдВ, рдФрд░ рд╡реЗ рдХреИрд╕реЗ рдЯрдВрдХреА рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЯреНрд░реЗрд╕ рдХрд░рддреЗ рд╣реИрдВ
nltk.featstruct
( sem
)nltk.grammar
( featstruct
)nltk.tree
( grammar
)nltk.chunk
( chunk.named_entity
> tree
)nltk.parse
( parse.bllip
> tree
)nltk.tag
( tag.stanford
> parse
)nltk.classify
( classify.senna
> tag
)nltk.inference
( inference.discourse
> sem
, tag
)nltk.stem
( stem.snowball
> corpus
> corpus.reader.timit
> tree
)рдзрдиреНрдпрд╡рд╛рдж @rpkilby , рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ!
рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ https://stackoverflow.com/questions/16745507/tkinter-how-to-use-threads-to-preventing-main-event-loop-from-freezing
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд┐рдВрдХрд░ рдХрд╛рдлреА рд╕рдордп рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рджрд░реНрдж рдмрд┐рдВрджреБ рд░рд╣рд╛ рд╣реИред рд╢рд╛рдпрдж, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо рдЗрд╕рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЦреЛрдЬ рд╕рдХреЗрдВред
рдореИрдВ рд╕рд╣рдордд рд╣реВрдВред рдПрдХ рдЫреЛрдЯреА рдЕрд╡рдзрд┐ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд┐ tkinter рдХреА рдЬрд░реВрд░рдд рдХреЗ рдЕрдВрджрд░ tkinter рдЖрдпрд╛рдд рдХреЛ рджрдлрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕реЗ рдЙрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рджреНрд╡рд╛рд░рд╛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕реБрдиреНрди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд┐рдпрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВ nltk рд╕реЗ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрдВрдзрд╛ рдкреНрд░рд╣рд╛рд░ рдХрд┐рдпрд╛ рдХрд┐ рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ / рдлреЗрд▓ рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдХреНрдпрд╛ рдерд╛ред рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдкреИрдХреЗрдЬ
__init__.py
рдХрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:рд╡рд┐рд╡рд░рдг (рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ)
рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рдЕрдХреНрд╖рдо рдЖрдпрд╛рдд рдЕрдВрддрддрдГ
tkinter
рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореВрд▓ рдХрд╛рд░рдг рд╣реИред рдпрджрд┐ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВimport nltk
import tkinter
import nltk
рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдорд╛рди рджреБрд░реНрдШрдЯрдирд╛ рд░рд┐рдкреЛрд░реНрдЯ рдорд┐рд▓рддреА рд╣реИ, рджреЛрдиреЛрдВ рд╕рдВрджрд░реНрднрд┐рдд рдЯрд┐рдВрдХрд░редрдореИрдВ рдЬреЛ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдЙрд╕рд╕реЗ рдпреЗ рдкреИрдХреЗрдЬ рд╕реАрдзреЗ
tkinter
рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ:nltk.app
nltk.draw
nltk.sem
рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рд▓реЗрдХрд░ рдореБрдЦреНрдп рдкреИрдХреЗрдЬ
__init__
, рдпреЗ рд╕рдорд╕реНрдпрд╛рддреНрдордХ рдЖрдпрд╛рдд рд╣реИрдВ, рдФрд░ рд╡реЗ рдХреИрд╕реЗ рдЯрдВрдХреА рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЯреНрд░реЗрд╕ рдХрд░рддреЗ рд╣реИрдВnltk.featstruct
(sem
)nltk.grammar
(featstruct
)nltk.tree
(grammar
)nltk.chunk
(chunk.named_entity
>tree
)nltk.parse
(parse.bllip
>tree
)nltk.tag
(tag.stanford
>parse
)nltk.classify
(classify.senna
>tag
)nltk.inference
(inference.discourse
>sem
,tag
)nltk.stem
(stem.snowball
>corpus
>corpus.reader.timit
>tree
)