Code Monkey home page Code Monkey logo

Comments (30)

rain1024 avatar rain1024 commented on August 15, 2024 4

@thusinh1969 , @thanhhau097 Mình vừa cập nhật bản underthesea 1.1.9a5, tốc độ tăng lên khoảng 70 lần :D. Mọi người cùng test thử nhé

from underthesea import word_tokenize

text = "Đầu giờ chiều ngày 7/9, trao đổi với Báo Giao thông, ông Nguyễn Ngọc Hùng, Giám đốc Sở Thông tin và Truyền thông tỉnh Gia Lai cho biết đã đọc thông tin trên Báo Gia Lai. Thông tin khá mù mờ nhưng rất được người dân quan tâm, ông Hùng nói và cho biết hôm nay họp cả ngày nên chưa kịp yêu cầu Báo Gia Lai báo cáo. Trước đó, báo điện tử Gia Lai đã đăng tải bài báo Một công dân Gia Lai khẳng định phát hiện địa điểm máy bay MH370 rơi. Bài báo thông tin: 4 năm trước, người đàn ông này lúc ấy đang làm ăn tại Đắk Nông trong lúc tình cờ tìm kiếm thông tin hình ảnh vệ tinh trên mạng bỗng thấy một chiếc máy bay có kích thước giống chiếc máy bay MH370 rơi trong một lòng hồ. Sau đó, anh đã quay lại hình ảnh và vị trí chiếc máy bay này trên Google Earth. Hiện nay, lòng hồ mực nước dâng cao, không thể quan sát bằng mắt thường nếu đi trên mặt hồ hoặc chụp ảnh qua vệ tinh. Người này sau đó đã đưa clip lên YouTube, đến nay có hơn 5.700 lượt xem (Tuy nhiên, vì nhiều lý do nên đã được gỡ xuống) nhưng không ai ý kiến gì. Gần đây qua báo chí anh thấy một người Anh đưa thông tin đã phát hiện được máy bay MH370 tại rừng rậm Campuchia. Qua hình ảnh, anh nhận thấy clip của họ giống clip của anh nhưng có dấu hiệu chỉnh sửa hình ảnh máy bay trong clip mà anh đưa lên mạng cách đây 4 năm, vậy nên anh quyết định công bố thông tin này cho báo điện tử Gia Lai. Cũng theo báo điện tử Gia Lai, chiếc máy bay được người này phát hiện đo được độ dài khoảng 60,78m, sải cánh 31,23m, máy bay còn nguyên vẹn, không bị vỡ, đầu cắm xuống lòng hồ. Kích thước này tương đồng với thông tin về chiếc máy bay MH370 của Hãng Hàng không Malaysia. Chiếc máy bay này rơi xuống nước ở độ sâu khoảng 30m và nhiều khả năng ngập dưới bùn 5-6m, chứ không phải nằm trong rừng rậm và không thuộc địa phận Campuchia. Qua hình ảnh có thể thấy cánh chiếc máy bay méo mó, không nhìn rõ, chứng tỏ có thể trước khi rơi, máy bay va chạm nhẹ vào cây rừng hoặc bị ngập sâu dưới bùn đất. Anh này thậm chí còn khẳng định chỉ cần 2-3 ngày là tìm thấy chính xác vị trí chiếc máy bay MH370. Nếu Chính phủ Malaysia đồng ý anh sẽ xin phép các cơ quan chức năng thuê thợ lặn tìm kiếm. Việc tìm kiếm này nếu không đúng thì hãng hàng không Malaysia cũng không mất gì, toàn bộ chi phí người này sẽ chịu." * 8

import time

start = time.time()
word_tokenize(text)
end = time.time()
print(end - start)

underthesea 1.1.8: 71.851 s

underthesea 1.1.9a5: 0.804 s

from underthesea.

thanhhau097 avatar thanhhau097 commented on August 15, 2024 1
from pyvi import ViTokenizer

text = "Đầu giờ chiều ngày 7/9, trao đổi với Báo Giao thông, ông Nguyễn Ngọc Hùng, Giám đốc Sở Thông tin và Truyền thông tỉnh Gia Lai cho biết đã đọc thông tin trên Báo Gia Lai. Thông tin khá mù mờ nhưng rất được người dân quan tâm, ông Hùng nói và cho biết hôm nay họp cả ngày nên chưa kịp yêu cầu Báo Gia Lai báo cáo. Trước đó, báo điện tử Gia Lai đã đăng tải bài báo Một công dân Gia Lai khẳng định phát hiện địa điểm máy bay MH370 rơi. Bài báo thông tin: 4 năm trước, người đàn ông này lúc ấy đang làm ăn tại Đắk Nông trong lúc tình cờ tìm kiếm thông tin hình ảnh vệ tinh trên mạng bỗng thấy một chiếc máy bay có kích thước giống chiếc máy bay MH370 rơi trong một lòng hồ. Sau đó, anh đã quay lại hình ảnh và vị trí chiếc máy bay này trên Google Earth. Hiện nay, lòng hồ mực nước dâng cao, không thể quan sát bằng mắt thường nếu đi trên mặt hồ hoặc chụp ảnh qua vệ tinh. Người này sau đó đã đưa clip lên YouTube, đến nay có hơn 5.700 lượt xem (Tuy nhiên, vì nhiều lý do nên đã được gỡ xuống) nhưng không ai ý kiến gì. Gần đây qua báo chí anh thấy một người Anh đưa thông tin đã phát hiện được máy bay MH370 tại rừng rậm Campuchia. Qua hình ảnh, anh nhận thấy clip của họ giống clip của anh nhưng có dấu hiệu chỉnh sửa hình ảnh máy bay trong clip mà anh đưa lên mạng cách đây 4 năm, vậy nên anh quyết định công bố thông tin này cho báo điện tử Gia Lai. Cũng theo báo điện tử Gia Lai, chiếc máy bay được người này phát hiện đo được độ dài khoảng 60,78m, sải cánh 31,23m, máy bay còn nguyên vẹn, không bị vỡ, đầu cắm xuống lòng hồ. Kích thước này tương đồng với thông tin về chiếc máy bay MH370 của Hãng Hàng không Malaysia. Chiếc máy bay này rơi xuống nước ở độ sâu khoảng 30m và nhiều khả năng ngập dưới bùn 5-6m, chứ không phải nằm trong rừng rậm và không thuộc địa phận Campuchia. Qua hình ảnh có thể thấy cánh chiếc máy bay méo mó, không nhìn rõ, chứng tỏ có thể trước khi rơi, máy bay va chạm nhẹ vào cây rừng hoặc bị ngập sâu dưới bùn đất. Anh này thậm chí còn khẳng định chỉ cần 2-3 ngày là tìm thấy chính xác vị trí chiếc máy bay MH370. Nếu Chính phủ Malaysia đồng ý anh sẽ xin phép các cơ quan chức năng thuê thợ lặn tìm kiếm. Việc tìm kiếm này nếu không đúng thì hãng hàng không Malaysia cũng không mất gì, toàn bộ chi phí người này sẽ chịu." * 8

ViTokenizer.tokenize(text)

import underthesea
underthesea.word_tokenize(text)

from underthesea.

kienvht avatar kienvht commented on August 15, 2024 1

@kienvht Hiện tại thì underthesea có dùng nhiều features hơn pyvi, nên tốc độ chậm hơn một chút.

Bạn có thử nghiệm với underthesea 1.1.8 không?

Mình có. Thấy chậm hơn cả 1.1.9a6 nhưng ko đo tốc độ chi tiết ^_^
Bạn cần test gì nữa cứ ới mình nhé @rain1024

from underthesea.

rain1024 avatar rain1024 commented on August 15, 2024 1

cảm ơn @kienvht nhé

from underthesea.

rain1024 avatar rain1024 commented on August 15, 2024 1

@lhdung258 Thanks for your report.

It's my mistake. The problem is I load my model (from disk, which is time consuming) every time the function sent_tokenize is called.

model_path = join(dirname(__file__), 'st_kiss-strunk-2006_2019_01_13.pkl')
with open(model_path, 'rb') as fs:
punkt_param = pickle.load(fs)

I will fix it in the next version of underthesea

from underthesea.

huybik avatar huybik commented on August 15, 2024 1

Ofcourse. Nhân tiện mình cũng sẽ update các tokenizer khác để so sánh với Underthesea.

from underthesea.

huybik avatar huybik commented on August 15, 2024 1

ERROR: Could not find a version that satisfies the requirement underthesea-core==0.0.4_alpha.8 (from underthesea) (from versions: 0.0.1, 0.0.2, 0.0.3, 0.0.4a0, 0.0.4a1, 0.0.4a2, 0.0.4a3, 0.0.4a4, 0.0.4a5, 0.0.4a6)
ERROR: No matching distribution found for underthesea-core==0.0.4_alpha.8

Lỗi underthesea-core==0.0.4a8 chưa được upload. Mình dùng python 3.9.7, conda.

from underthesea.

huybik avatar huybik commented on August 15, 2024 1

Mybad mình dùng windows (sẽ chuyển qua linux sớm), mình mới check chưa có build cho windows ^^ https://pypi.org/project/underthesea_core/0.0.4_alpha.8/#files

from underthesea.

rain1024 avatar rain1024 commented on August 15, 2024 1

okie, để mình build thử một bản cho windows xem. Hi vọng sẽ works =))

from underthesea.

rain1024 avatar rain1024 commented on August 15, 2024 1

@huybik Mình vừa update underthesea_core phiên 0.0.4_alpha.8 có hỗ trợ Windows. Bạn thử lại xem nhé

from underthesea.

huybik avatar huybik commented on August 15, 2024 1

Thanks, install và chạy ok, mình sẽ làm review sớm.

from underthesea.

huybik avatar huybik commented on August 15, 2024 1

@rain1024 Post mình đã online ở https://huybik.github.io/Word-Tokenizer-Benchmark-followup/ . Cảm ơn bạn đã theo dõi.

from underthesea.

rain1024 avatar rain1024 commented on August 15, 2024 1

@huybik Cảm ơn bạn rất nhiều. Sắp tới mình sẽ tiếp tục tăng tốc và cải tiến độ chính xác của underthesea :D

Hi vọng lúc đó bạn sẽ tiếp tục giúp underthesea thực hiện các đánh giá độc lập hữu ích như thế này

from underthesea.

rain1024 avatar rain1024 commented on August 15, 2024

@thusinh1969 What is your scenario? please give us more detail.

  • What is the size of your corpus?
  • How do you run underthesea? You run word_tokenize, pos_tag, ner or something else?
  • What is your expected?

from underthesea.

rain1024 avatar rain1024 commented on August 15, 2024

@thusinh1969 As an update, I'm working in this problem. The speed of word_tokenize function will be at least 2x faster.

from underthesea.

rain1024 avatar rain1024 commented on August 15, 2024

Mình đã chạy script này, đúng là tốc độ của underthesea chậm hơn rất nhiều so với pyvi (35k ms so với 93 ms).

Mình sẽ xem xét vấn đề này và fix trong các phiên bản tiếp theo

Cảm ơn @thanhhau097.

from underthesea.

kienvht avatar kienvht commented on August 15, 2024

@rain1024 Mình cũng đang định report lỗi Word Tokenizer rất chậm. Thì đọc được đến đây. Để mình thử tốc độ của 1.1.9a5 xem sao ^^. Cảm ơn bạn

from underthesea.

rain1024 avatar rain1024 commented on August 15, 2024

@kienvht Hiện tại phiên bản underthesea mới nhất 1.1.9a6 đang có tốc độ cho việc tách từ tốt hơn rất nhiều so với 1.1.8. Rất mong @kienvht thử nghiệm và phản hồi

from underthesea.

kienvht avatar kienvht commented on August 15, 2024

Input: 15.68 MB

$ wc -l sentence100k.txt
100000 sentence100k.txt
$ wc -w sentence100k.txt
2772267 sentence100k.txt

Using underthesea 1.1.9a6:
589.0803015232086

Using pyvi:
118.4729472122134

$pip3 list
underthesea                   1.1.9a6
pyvi                          0.0.9.1

from underthesea.

rain1024 avatar rain1024 commented on August 15, 2024

@kienvht Hiện tại thì underthesea có dùng nhiều features hơn pyvi, nên tốc độ chậm hơn một chút.

Bạn có thử nghiệm với underthesea 1.1.8 không?

from underthesea.

daniellam258 avatar daniellam258 commented on August 15, 2024

Also, can you have a look at sentence tokenizer! It is pretty slow! I ran sent_tokenize on around 30.000 documents and it took about 30mins. However, I manage to solve this issue by multiprocessing. But still slow. Thanks a lot!

from underthesea.

thusinh1969 avatar thusinh1969 commented on August 15, 2024

from underthesea.

thusinh1969 avatar thusinh1969 commented on August 15, 2024

WOW !!!

from underthesea.

rain1024 avatar rain1024 commented on August 15, 2024

(notify nhẹ) Hiện tại mình đang cố gắng làm việc để cải thiện issue này, ý tưởng hiện tại là sử dụng rust để tăng tốc phần tiền xử lý feature trước khi đưa vào CRF.

Đây là code bước đầu cho bạn nào muốn tìm hiểu thêm
https://github.com/undertheseanlp/underthesea/tree/GH-185/extensions/underthesea_core

Issue này là một trăn trở rất lớn của mình :D. Hi vọng rằng sẽ fix được trong thời gian tới :D

  • Thử nghiệm build rust như một subpackage (underthesea-core]
  • Viết lại class TaggedTransformer trong Rust
  • Thay thế class TaggedTransformer
  • Đánh giá tốc độ
  • Phát hành phiên bản v1.3.4
  • Sử dụng rust crf
  • Tiền xử lý trong rust
  • Xử lý đa luồng trong rust
  • Implement regex trên rust

Kết quả đánh giá tốc độ

underthesea-core v0.0.4-alpha.4 vs underthesea v1.3.3 (CRF Featurizers in 10000 sentences)

Old
         6 function calls in 36.460 seconds

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1   36.460   36.460   36.460   36.460 {method 'enable' of '_lsprof.Profiler' objects}
        1    0.000    0.000   36.460   36.460 /home/anhv/anaconda3/envs/underthesea/lib/python3.6/cProfile.py:15(run)


New
         4 function calls in 5.794 seconds

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    5.794    5.794    5.794    5.794 {method 'enable' of '_lsprof.Profiler' objects}
        1    0.000    0.000    5.794    5.794 /home/anhv/anaconda3/envs/underthesea/lib/python3.6/cProfile.py:15(run)


Ratio 6.292174933811583 ( 36.45964899999999 -> 5.794443 )

underthesea-core v0.0.4-alpha.6 vs underthesea v1.3.3 (word_tokenize in 1000 sentences)

`Load 1002 sentences, 50640 tokens
=========================================
         9585693 function calls in 3.682 seconds

   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
     1002    1.717    0.002    2.813    0.003 /home/anhv/PycharmProjects/undertheseanlp/underthesea/underthesea/transformer/tagged.py:23(word2features)
     1002    0.622    0.001    0.622    0.001 {method 'tag' of 'pycrfsuite._pycrfsuite.Tagger' objects}

         211499 function calls (211494 primitive calls) in 1.553 seconds

   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
     1002    0.691    0.001    0.691    0.001 {method 'process' of 'builtins.CRFFeaturizer' objects}
     1002    0.603    0.001    0.603    0.001 {method 'tag' of 'pycrfsuite._pycrfsuite.Tagger' objects}
 =========================================


Ratio 2.3717061765529954 ( 3.6822279999999994 -> 1.5525649999999993 )
Current Speed
645.38 sentences/sec
32616.99 tokens/sec

from underthesea.

rain1024 avatar rain1024 commented on August 15, 2024

Thông tin thêm: Bạn @huybik có làm một đánh giá độc lập khá thú vị ở đây

https://huybik.github.io/Word-Tokenizer-Benchmark/

Dự án coccoc-tokenizer đang có tốc độ khá ấn tượng:

  • Speed: 15M characters / second, or 2.5M tokens / second

from underthesea.

rain1024 avatar rain1024 commented on August 15, 2024

Cập nhật kết quả phiên bản v1.3.4-alpha

Benchmark word_tokenize function trên 1000 câu

Version 1.3.4-alpha

631.77 sentences/sec
31928.74 tokens/sec

Version 1.3.3

266.50 sentences/sec
13468.48 tokens/sec

Theo thống kê ở đây, tốc độ của phiên bản mới v1.3.4-alpha đã gấp đôi phiên bản trước v1.3.3

@huybik Bạn có thể làm một đánh giá độc lập giúp underthesea về phiên bản mới này không?

from underthesea.

huybik avatar huybik commented on August 15, 2024

@rain1024 pip install --upgrade underthesea==1.3.4a0 lỗi
ERROR: underthesea-core==0.0.4_alpha.6 from https://files.pythonhosted.org/packages/88/67/c04c428c3927b18a3ed7202d3c12f98f581b92a26bebe383a47aaac793b4/underthesea_core-0.0.4_alpha.6.tar.gz#sha256=a2006c4a45d9c345a39ef6fe724980a3280b15012de53aef9762ba9fa62f1fbf (from underthesea==v1.3.4-alpha) has a pyproject.toml file that does not comply with PEP 518: 'build-system.requires' contains an invalid requirement: '==0.9.4'

from underthesea.

rain1024 avatar rain1024 commented on August 15, 2024

@huybik Bạn dùng hệ điều hành gì , python environment nào (vevn, conda?) và python phiên bản bao nhiêu vậy?

Update 1: Mình test lại thì phiên bản python 3.6 vẫn ok, nhưng python 3.9 lại gặp lỗi này

Update 2: Mình đã hot fix lỗi này ở bản 1.3.4a1

Bạn thử lại giúp mình nhé

from underthesea.

rain1024 avatar rain1024 commented on August 15, 2024

@huybik Bạn dùng hệ điều hành gì nhỉ? Mình test python 3.9.7, conda trên Ubuntu vẫn ổn. Lạ thật

Selection_673

from underthesea.

rain1024 avatar rain1024 commented on August 15, 2024

@thusinh1969 @kienvht Hiện tại tốc độ tách từ của underthesea đã cải thiện. Hi vọng các bạn có thể dùng thử và góp ý cho underthesea nhé

from underthesea.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.