Tôi đang cố gắng phân tích hàng trăm câu thành các cây cú pháp của chúng và tôi cần thực hiện nhanh như vậy, vấn đề là nếu tôi sử dụng NLTK thì tôi cần xác định ngữ pháp và không thể biết rằng tôi chỉ biết nó sẽ là tiếng anh. Tôi đã thử sử dụng this trình phân tích cú pháp thống kê và nó hoạt động tốt cho mục đích của tôi, tuy nhiên tốc độ có thể tốt hơn rất nhiều, có cách nào để sử dụng phân tích cú pháp nltk không có ngữ pháp không? Trong đoạn mã này, tôi đang sử dụng một nhóm xử lý để thực hiện việc xử lý trong "song song" nhưng tốc độ để lại rất nhiều điều mong muốn.Nhanh chóng phân tích cú pháp NLTK thành cây cú pháp
import pickle
import re
from stat_parser.parser import Parser
from multiprocessing import Pool
import HTMLParser
def multy(a):
global parser
lst=re.findall('(\S.+?[.!?])(?=\s+|$)',a[1])
if len(lst)==0:
lst.append(a[1])
try:
ssd=parser.norm_parse(lst[0])
except:
ssd=['NNP','nothing']
with open('/var/www/html/internal','a') as f:
f.write("[[ss")
pickle.dump([a[0],ssd], f)
f.write("ss]]")
if __name__ == '__main__':
parser=Parser()
with open('/var/www/html/interface') as f:
data=f.read()
data=data.split("\n")
p = Pool(len(data))
Totalis_dict=dict()
listed=list()
h = HTMLParser.HTMLParser()
with open('/var/www/html/internal','w') as f:
f.write("")
for ind,each in enumerate(data):
listed.append([str(ind),h.unescape(re.sub('[^\x00-\x7F]+','',each))])
p.map(multy,listed)
Nó có thể được khai báo toàn cầu đang gây ra sự chậm trễ? Có lẽ tôi nên sử dụng một đối tượng phân tích cú pháp mới? – Evan