thảo luận Những chia sẻ, thảo luận về Xử lý ngôn ngữ tự nhiên (NLP)

Valky99

Senior Member
Code của mình đây bác

Python:
import phonlp
phonlp.download(save_dir='./pretrained_phonlp')
model = phonlp.load(save_dir='./pretrained_phonlp')

data['aspect'] = data['content'].apply(model.annotate).apply(lambda x: [y for y in x[0] if x[1] == 'N'])

Kết quả mình muốn sẽ ra như vầy
View attachment 659539

Do kết quả trên mình đang sử dụng thư viện underthesea để trích xuất và mình thấy kết quả không chính xác lắm do không nhận diện được các từ ghép sau khi tokenize, nên mới thực nghiệm thử thư viện PhoNLP mà đang bị stuck ở khúc trên. Nhờ bác xem hộ với nhé.

Hi bác,

Gợi ý đây nhé

Python:
test = model.annotate(text="Tôi đang làm_việc tại VinAI . Tôi đang đi học")
out = [w for w, t in zip(test[0][0],test[1][0]) if 'V' in t]
print(out)

# ['làm_việc', 'đi', 'học']
 

buiminhhien

Junior Member
Hi bác,

Gợi ý đây nhé

Python:
test = model.annotate(text="Tôi đang làm_việc tại VinAI . Tôi đang đi học")
out = [w for w, t in zip(test[0][0],test[1][0]) if 'V' in t]
print(out)

# ['làm_việc', 'đi', 'học']
Good quá bác ơi, thank you bác nhiều lắm :LOL:
 

Valky99

Senior Member
#WDIDT #2: Cập nhật tuần rồi của mình vừa qua thì chỉ mới đọc đc sơ sơ 1 survey paper thôi, do tình hình chống dịch căng thẳng quá =((. Cơ mà về crawler thì mình đã hoàn thành rồi :sexy_girl:

Tình hình crawler như sau: Mất một thời gian suy nghĩ đi suy nghĩ lại thì mình tạm chọn mục f17 làm data. Và cũng có thể xem là nguồn data dồi dào nhất trong forum voz này. Tuy nhiên, cũng có 1 số hạn chế từ nguồn dữ liệu này, cái này chắc là mình sẽ nói sau khi đến phần phân tích dữ liệu.

Hy vọng được mấy bạn làm bên mảng phân tích data hỗ trợ :beauty:

Cuối cùng, mong cán bộ bỏ qua hành vi này :pudency: nếu cán bộ ưng thì sau khi hoàn thành sản phẩm, mình sẽ trao lại toàn bộ source code mà mình làm nhé.

P/S: Chi tiết về crawler thì mình dùng thư viện scrapy và chi tiết spider mình đính kèm sau đây:

Python:
import scrapy

class VozSpider(scrapy.Spider):
    name = 'voz'
    start_urls = ['https://voz.vn/f/chuyen-tro-linh-tinh.17/']
    custom_settings = { 'FEED_URI': "voz_%(time)s.json",
                       'FEED_FORMAT': 'json',
                       'FEED_EXPORT_ENCODING': 'utf-8'}

    def parse(self, response):
        print("Current URL: {}".format(response.url))

        post_urls = response.xpath('//div[@class="structItem-title"]//a/@href').extract()
        for url_item in post_urls:
            yield scrapy.Request('https://voz.vn' + url_item, callback=self.content_parse)

        next_page = response.xpath('//a[contains(@class, "pageNav-jump--next")]//@href').get()
        if next_page is not None:
            next_page = response.urljoin(next_page)
            yield scrapy.Request(next_page, callback=self.parse)

    def content_parse(self, response):
        yield {
                'url': response.url,
                'title': response.xpath('//h1[contains(@class, "p-title-value")]/text()').get().strip(),
                'text': '[_SEP_]'.join(response.xpath('//article[@class="message-body js-selectToQuote"]//div[contains(@class, "bbWrapper")]/text()[not(ancestor::blockquote)]').extract()).strip(),
            }

        next_page = response.xpath('//a[contains(@class, "pageNav-jump--next")]//@href').get()
        if next_page is not None:
            next_page = response.urljoin(next_page)
            yield scrapy.Request(next_page, callback=self.content_parse)
 
Last edited:

Valky99

Senior Member
#WDIRT #4: Đây là bài blog chia sẻ một phương pháp mới sử dụng tính toán phân bố cho việc huấn luyện mô hình. Phương pháp này đã thực hiện thành công với ngôn ngữ Bengal và đạt được kết quả tiệm cận với mô hình huấn luyện sử dụng phần cứng tốt hơn

Link
 

johnnyt

Đã tốn tiền
Mình hiện tại đang làm về NLP. Từng ngồi hơn nửa năm chỉ để cải thiện tokenizer. Liệu có doanh nghiệp nào đầu tư vậy không ngoài các công ty lớn? Câu hỏi của mình là thiên là hướng ứng dụng AI vào thị trường VN và oursourcing chứ không phải làm các sản phẩm như google translate. Hoạ chăng chỉ những thằng ngu mới làm lại cái tương tự như thế. Thực tế các API text-to-speech hay speech-to-text các ngân hàng vẫn lựa chọn google API chứ không phải của FPT Vbee hay VT


via theNEXTvoz for iPhone

Những khách hàng cần bảo mật thông tin, input không được để lộ ra ngoài, engine cần chạy ở local thôi, khi đó bạn sẽ không dùng được api bên ngoài như của google mà sẽ phải tự phát triển engine rồi đóng gói bán cho họ. Các khách hàng kiểu này còn rất nhiều như các ngân hàng, các doanh nghiệp nhà nước, công an, quân đội,... :D

Sent from Samsung SM-G970F using vozFApp
 

Valky99

Senior Member
#WDIRT #5:
1. Bài báo này nói về nhược điểm của việc gán nhãn bằng tay và đề xuất các phương pháp thay thế. Mình cảm thấy bài báo này khá thú vị :D ==> Click to read

2. Một sự paper đưa ra quan điểm về sự khác nhau giữa statistics và machine learning. ==> Click to read
 

huyhoangle86

Senior Member
@Valky99 Hi thím đợt tới cty định hướng e dấn thân vào NLP, thím cho e hỏi hiện nay NLP đang được ứng dụng vào mảng nào ạ ? Thím có thể list ra một vài mảng đang dùng NLP hiện nay không ?
 

Tuantuantuan

Senior Member
@Valky99 Hi thím đợt tới cty định hướng e dấn thân vào NLP, thím cho e hỏi hiện nay NLP đang được ứng dụng vào mảng nào ạ ? Thím có thể list ra một vài mảng đang dùng NLP hiện nay không ?
tưởng định hướng san phẩm trước rồi mới tìm công nghệ sau chứ, đây chơi công nghệ trước à :)))
 

huyhoangle86

Senior Member
tưởng định hướng san phẩm trước rồi mới tìm công nghệ sau chứ, đây chơi công nghệ trước à :)))
Các sếp mới cho thời gian ngồi R&D NLP trước thím ạ, sau có thể các sếp kéo dự án về làm, chứ chưa yêu cầu sản phẩm gì. Nên e mới hỏi tổng quan ứng dụng NLP để sau có thể làm một cái demo để gửi lên trên.
 

Tuantuantuan

Senior Member
Các sếp mới cho thời gian ngồi R&D NLP trước thím ạ, sau có thể các sếp kéo dự án về làm, chứ chưa yêu cầu sản phẩm gì. Nên e mới hỏi tổng quan ứng dụng NLP để sau có thể làm một cái demo để gửi lên trên.
nếu chỉ nói về demo thì chatbot ổn rồi, ra nhanh được application
 

huyhoangle86

Senior Member
nếu chỉ nói về demo thì chatbot ổn rồi, ra nhanh được application
Mà học NLP nên bắt đầu từ đâu thím nhỉ ? Thấy thím thớt có dẫn link 1 khoá của MS, 1 cuốn sách , 1 khoá Coursera của trường Đại học Stanford . E đã làm Computer vision một thời gian rồi giờ qua NLP :v . Méo biết nên bắt đầu từ đâu
 

Valky99

Senior Member
@Valky99 Hi thím đợt tới cty định hướng e dấn thân vào NLP, thím cho e hỏi hiện nay NLP đang được ứng dụng vào mảng nào ạ ? Thím có thể list ra một vài mảng đang dùng NLP hiện nay không ?

Hi bác,

Nếu để nói NLP ứng dụng vào mảng nào thì cũng hơi khó để mình trả lời :surrender: vì NLP là xử lý ngôn ngữ tự nhiênngôn ngữ tự nhiên có thể hiểu là văn nói và văn viết, và là công cụ giao tiếp quan trọng giữa người với người.

Vì vậy, mình nghĩ rằng, mảng nào cũng có thể ứng dụng NLP vào được, trừ khi mảng đó không cần giao tiếp ngôn ngữ :sad:. Nhưng ứng dụng NLP đến đâu trong mảng đó thì mình xin bỏ ngỏ, vì chưa đủ tầm nhìn để xem xét.
 

huyhoangle86

Senior Member
Mà học NLP nên bắt đầu từ đâu thím nhỉ ? Thấy thím thớt có dẫn link 1 khoá của MS, 1 cuốn sách , 1 khoá Coursera của trường Đại học Stanford . E đã làm Computer vision một thời gian rồi giờ qua NLP :v . Méo biết nên bắt đầu từ đâu
@Valky99 Thanks thím còn câu hỏi này của e mong thím giải đáp nốt :beat_brick:
 

Valky99

Senior Member
@Valky99 Thanks thím còn câu hỏi này của e mong thím giải đáp nốt :beat_brick:
Nếu mà bác không đi sâu vào NLP thì bác có thể học mấy khoá như này ML For Beginner - Microsoft, và dùng thư viện của Hugging Face Hugging Face Course. Cũng có thể học khoá NLP Stanford trên Coursera (mình học lâu rồi nên chỉ nhớ là khoá này dạy có thêm lý thuyết bên cạnh thực hành).

Nếu mà bác có kinh nghiệm về CV rồi thì k khó lắm đâu, mình từng thử nghiệm 1 mô hình bên CV để huấn luyện cho NLP, lúc đó chỉ cần padding cho các câu, hoặc rút ngắn câu đi để 1 cái batch input có chiều dài giống nhau rồi huấn luyện thôi (mình có thể tưởng tượng là 1 dòng pixel trên ảnh là 1 câu đã được xử lý về 1 chiều dài cố định v). Đặc trưng thì mình cứ random trc rồi sẽ xử lý sau :D
 

huyhoangle86

Senior Member
Nếu mà bác không đi sâu vào NLP thì bác có thể học mấy khoá như này ML For Beginner - Microsoft, và dùng thư viện của Hugging Face Hugging Face Course. Cũng có thể học khoá NLP Stanford trên Coursera (mình học lâu rồi nên chỉ nhớ là khoá này dạy có thêm lý thuyết bên cạnh thực hành).

Nếu mà bác có kinh nghiệm về CV rồi thì k khó lắm đâu, mình từng thử nghiệm 1 mô hình bên CV để huấn luyện cho NLP, lúc đó chỉ cần padding cho các câu, hoặc rút ngắn câu đi để 1 cái batch input có chiều dài giống nhau rồi huấn luyện thôi (mình có thể tưởng tượng là 1 dòng pixel trên ảnh là 1 câu đã được xử lý về 1 chiều dài cố định v). Đặc trưng thì mình cứ random trc rồi sẽ xử lý sau :D
nghe hướng các sếp muốn thì có vẻ là đi sâu thím ạ. :v , anw e sẽ ghé mấy khoá thím bảo để tìm hiểu, cơ mà nếu đi sâu vào NLP thì học mấy khoá kia rồi có cần học thêm gì nữa không thím ?
 

Valky99

Senior Member
nghe hướng các sếp muốn thì có vẻ là đi sâu thím ạ. :v , anw e sẽ ghé mấy khoá thím bảo để tìm hiểu, cơ mà nếu đi sâu vào NLP thì học mấy khoá kia rồi có cần học thêm gì nữa không thím ?
Nếu bác muốn học sâu thì mình nghĩ nên tìm 1 thầy hướng dẫn, vì gốc mà k chắc là dễ rụng lắm.

Cơ mà trong trường hợp bác là thiên tài thì s :adore: bác có thể đào sâu qua bên ngôn ngữ học, hiểu được cấu tạo của từ, cấu tạo của câu, cú pháp ... nghĩa là hiểu được cấu trúc tiếng Việt hay bất kì tiếng gì mà bác định hướng tới.

Lý do tại s lại cần, là vì ngay cả mình và rất nhiều công trình khác NLP, chưa có và thiếu hụt khung lý thuyết để xây dựng đi lên (bác phân tích, xử lý ngôn ngữ thì phải hiểu ngôn ngữ đó như thế nào đúng k :smile:). Chỉ có khung lý thuyết này mới diễn giải được lý do tại s mình lại chạy mô hình kiểu này mà không phải kiểu khác, tại s từ này đi với từ kia mà k đi được với từ khác, v.v.
 

huyhoangle86

Senior Member
Nếu bác muốn học sâu thì mình nghĩ nên tìm 1 thầy hướng dẫn, vì gốc mà k chắc là dễ rụng lắm.

Cơ mà trong trường hợp bác là thiên tài thì s :adore: bác có thể đào sâu qua bên ngôn ngữ học, hiểu được cấu tạo của từ, cấu tạo của câu, cú pháp ... nghĩa là hiểu được cấu trúc tiếng Việt hay bất kì tiếng gì mà bác định hướng tới.

Lý do tại s lại cần, là vì ngay cả mình và rất nhiều công trình khác NLP, chưa có và thiếu hụt khung lý thuyết để xây dựng đi lên (bác phân tích, xử lý ngôn ngữ thì phải hiểu ngôn ngữ đó như thế nào đúng k :smile:). Chỉ có khung lý thuyết này mới diễn giải được lý do tại s mình lại chạy mô hình kiểu này mà không phải kiểu khác, tại s từ này đi với từ kia mà k đi được với từ khác, v.v.
Cám ơn bác nha, thớt này bổ ích quá , nào e ngâm được cái gì hay e sẽ đào thớt này lên để share :v
 

a3.phantom.vn

Đã tốn tiền
nghe hướng các sếp muốn thì có vẻ là đi sâu thím ạ. :v , anw e sẽ ghé mấy khoá thím bảo để tìm hiểu, cơ mà nếu đi sâu vào NLP thì học mấy khoá kia rồi có cần học thêm gì nữa không thím ?
Bác muốn sâu cỡ nào, chỉ sợ không đủ nền tảng để đi sâu thôi.
Sâu thì ít nhất bác học cuốn của Dan Jurafsky: https://web.stanford.edu/~jurafsky/slp3/ .
Notes của Eisenstein thì ngắn hơn nhiều nhưng cũng đủ để giới thiệu tổng thể: https://github.com/jacobeisenstein/gt-nlp-class/blob/master/notes/eisenstein-nlp-notes.pdf
 

huyhoangle86

Senior Member
Top