Comments (30)
@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.
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 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.
cảm ơn @kienvht nhé
from underthesea.
@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.
underthesea/underthesea/sent_tokenize/__init__.py
Lines 10 to 12 in 3663427
I will fix it in the next version of underthesea
from underthesea.
Ofcourse. Nhân tiện mình cũng sẽ update các tokenizer khác để so sánh với Underthesea.
from underthesea.
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.
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.
okie, để mình build thử một bản cho windows xem. Hi vọng sẽ works =))
from underthesea.
@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.
Thanks, install và chạy ok, mình sẽ làm review sớm.
from underthesea.
@rain1024 Post mình đã online ở https://huybik.github.io/Word-Tokenizer-Benchmark-followup/ . Cảm ơn bạn đã theo dõi.
from underthesea.
@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.
@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.
@thusinh1969 As an update, I'm working in this problem. The speed of word_tokenize function will be at least 2x faster.
from underthesea.
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.
@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.
@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.
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.
@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.
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.
from underthesea.
WOW !!!
from underthesea.
(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.
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.
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.
@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.
@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.
@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
from underthesea.
@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)
- How to install underthesea on Alpine Docker image HOT 3
- Support PyTorch v2 for dependency parsing HOT 2
- Agents with LLMs
- KeyError: '__getitems__' HOT 1
- Create text to speech with custom voice HOT 1
- VLC Corpus 2023
- underthesea for another languages
- Vietnamese Fiction Dataset
- Vietnamese Abstract Meaning Represeantion
- Optimization of Underthesea Codebase Size
- Lỗi gặp phải khi chuyển văn bản thành giọng nói (TTS) HOT 1
- không tải được, nó hiện lỗi ModuleNotFoundError: No module named 'maturin HOT 5
- Support python 3.12 (2024Q1)
- Bug detecting names with hyphens.
- Incompatibility with sklearn >= 1.5
- field list be able returned from classify function?
- 🌊 Underthesea v7
- Support underthesea_core with python 3.12
- Rust bindings in Docker on M1 HOT 2
- Underthesea 6.8.3 requires fasttext on import but the dependency is missing HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from underthesea.