Chào mừng đến với BIS Đăng nhập | Đăng ký | Trợ giúp
trong Tìm kiếm

Text Mining với Business Intelligence Development Studio của MS SQL SERVER

Bài cuối 06-25-2019 06:15 PM của linh060. 12 trả lời.
Trang 1 trong số 1 (13 nội dung)
Sắp xếp bài viết: Trước Tiếp theo
  • 05-24-2011 10:15 PM

    • chucnv
    • 10 thành viên năng nổ nhất
    • Tham gia 12-05-2008
    • Điểm 28,320

    Text Mining với Business Intelligence Development Studio của MS SQL SERVER

    Text Mining với Business Intelligence Development Studio của MS SQL SERVER

    Nguyễn Văn Chức – chuc.nv@due.edu.vn

    Bài viết này giới thiệu qui trình thực hiện một Text mining Model (nhiệm vụ cụ thể trong bài viết này là Text classification) với công cụ BIDS của MS SQL SERVER.

    Dataset sử dụng trong bài viết này được lấy từ flat file NGArticles.txt chứa các bài viết thảo luận (Article) được đưa lên trên 1 forum. Các bài viết này thuộc về 5 chủ đề (NewsGroup) là comp.graphics, comp.os.ms-windows.misc,comp.windows.x,comp.sys.mac.hardware và comp.sys.ibm.pc.hardware.(Download file NGArticle.txt tại đây)

    Mỗi tin tức (News Article) được Post lên gồm 3 phần là ID, NewsGroup và ArticleText. Nhiệm vụ là xây dựng Data Mining Model để phân lớp cho các Tin tức vào các nhóm chủ đề đã biết.

    1. Chuẩn bị dữ liệu cho Model

    Vì file NGArticles.txt là file Flat nên ta phải chuyển đổi nội dung file này vào trong Database như sau :

    1.1. Tạo một Database có tên “DTM” trên MS SQL SERVER

    1.2. Import nội dung Flat file NGArticles.txt vào DTM như sau:

    • Right click the database, TDM, and Taskà Import.
    • Source: NGArticles.txt
    • Header row delimiter: @@@@
    • Check “Column names in the first data row”
    • Row delimiter: @@@@
    • Column delimiter: &&&&
    • Column property for “ArticleText”: Change DataType to DT_NTEXT

    Destination:

    • Server: local SQL server (localhost)
    • Database: TDM
    • Table: NGArticle

     


     

    Kết quả sau khi chuyển dữ liệu từ Flat File NGArticles.txt sau Table NGArticles (gồm 5000 Records) như sau


    2.  Tạo một từ điển (Dictionary) cho cho Model

    2.1. Khởi động BIDS và tạo một Integration Services project mới đặt tên “TextDataMining”.

    2.2. Để thuận lợi, ta đổi tên của Integration Services project thành “PrepareArticles


     2.3. Tạo mới một SSIS package

    2.4. Đổi tên thành BuildDictionary.dtsx

    2.5. Trong Data Flow tab thêm một Data Flow task mới

    2.6. Trong Data Flow task, thêm một “OLE DB Source

    ·         Connection: Tạo một Connection mới localhost.TDM

    ·         Table: NGArticles

    ·         Columns: ArticleText

    2.7. Thêm một “Term Extraction  mới và connect từ OLE DB Source

    ·         Term Type: Noun and Noun Phrase

    ·         Score Type: TFIDF (Term Frequency–Inverse Document Frequency- cho biết độ quan trọng của từ hay thuật ngữ (term) trong documents. Ví dụ trong 1 document có 100 từ và từ "cow" xuất hiện 3 lần, vậy TF(Term Frequency) của từ "cow" là 3/100= 0.03. Bây giờ giả sử  ta có 10 triệu tài liệu và  số lần từ "cow" xuất hiện trong 10 triệu tài liệu đó là 1000. Vậy ta có IDF (Inverse Document Frequency) = log(10 000 000/1000)=4. Khi đó TFIDF của từ "cow" được tính = 0.03x4= 0.12

    ·         Parameters: Frequency=10, Length=2

    2.8. Thêm bộ “Sort” và connect từ “Term Extraction”.

    ·         Sort “Term” in ascending order

    ·         Don’t pass through Score column

    2.9. Thêm một “OLE DB Destination” mới và connect từ “Sort”.

    ·         Connection: localhost.TDM

    ·         Click “New” and name it “Dictionary”

    ·         Mappings, connect the column, “Term”


    2.10. Bấm F5 để thực hiện, trong TDM có table “Dictionary”


     

    3. Tạo một term vectors

    3.1. Tạo mới một SSIS package

    3.2. Đổi tên lại thành:BuildTermVectors.dtsx

    3.3. Trong Data Flow tab tạo một Data Flow task mới

    3.4. Tạo một “OLE DB Source”

    ·         Connection: localhost.TDM

    ·         Table: NGArticles

    ·         Columns: ID, ArticleText

    3.5. Thêm “Term Lookup” và connect từ OLE DB Source

    ·         Reference table: Dictionary

    ·         PassThru column: ID

    ·         Lookup input column: ArticleText

     

     

     

     3.6. Thêm một “Sort” connect từ “Term Lookup”.

    ·         Sort “ID” in ascending, “Term” in ascending, no duplicates

    3.7. Thêm một “OLE DB Destination” connect từ “Sort”.

    ·         Connection: localhost.TDM

    ·         Click “New” và đặt tên “TermVectors”

    ·         Trong mục Mappings, connect tất cả các cột , “Term”, “Frequency”, “ID”


    3.8. Bấm F5 để thực hiện, trong TDM có table “TermVectors” như sau:


    4. Chuẩn bị dữ liệu để train và Test Model

    4.1. Tạo mới một SSIS package

    4.2. Đổi tên lại thành PrepareSamples.dtsx

    4.3. Trong Data Flow tab tạo mới một Data Flow task

    4.4. Trong data flow task, thêm một  “OLE DB Source”

    ·         Connection: localhost.TDM

    ·         Table: NGArticles

    ·         Columns: ID, NewsGroup

    4.5. Thêm một “Percentage Sampling” OLE DB Source

    ·         Sampling rate: 70%

    ·         Selected rows: Train sample (70%)

    ·         Unselected rows: Test sample (30%)

     

     4.6. Thêm 2 “OLE DB Destination” và kết nối từ Percentage Sampling (một Training Dataset, Testing Dataset)

    ·         Connection: localhost.TDM

    ·         Click “New” đặt tên là “TrainArticles” và “TestArticles”.

    ·         Mappings, connect các cột “ID”, “NewsGroup”

    4.7. Bấm F5 để thực hiện, trong TDM có 2 tables “TrainArticles” và “TestArticles” như sau

     

     5. Xây dựng/Kiểm tra và tinh chỉnh mô hình

    5.1Thêm một Analysis Services project và đặt tên  “TextMiningModel”.

     

     5.2 Tạo một  Data Source kết nối đến database TDM.

    5.3 Tạo một Data Source View (DSV)  sử dụng data source TDM chứa 3 tables: TrainArticles, TestArticles và TermVectors.

     

     

     5.4 Tạo một Mining Structure as follows:

    • Algorithm: Microsoft_Decision_Trees
    • DSV : TDM
    • Case table: TrainArticles
    • Nested table: TermVectors
    • Columns:

     

    • Đặt tên Mining structure là “NGArticlesDM” và Mining model là “NGArticlesDM_DT”

    5.5 Thêm 2 Mining Models để so sánh kết quả với Decision Trees sử dụng Algorithms Naïve Bayes và Logistics Regression như sau  bằng cách Right click model NGArticlesDM_DT chọn “New Mining Model…” :

    • Tên Model : NGArticlesDM_NB sử dụng Microsoft_Naive_Bayes algorithm
    • Tên Model: NGArticlesDM_NN sử dụng Microsoft_Logistic_Regression algorithm

     5.6 Thiết lập tham số cho 3 models như sau : Right click model  và chọn set the algorithm parameters và đặt lại tham số MAXIMUM_INPUT_ATTRIBUTES của 3 models =0 (hủy bỏ chức năng tự động chọn thuộc tính – Feature selection của mỗi Model)

    ·         NGArticlesDM_DT: MAXIMUM_INPUT_ATTRIBUTES=0

    ·         NGArticlesDM_NB:MAXIMUM_INPUT_ATTRIBUTES=0

    ·         NGArticlesDM_NN:MAXIMUM_INPUT_ATTRIBUTES=0

    5.7 Thực hiện các Mining Models bằng cách bấm phím F5.

    5.8 Chọn “Mining Accuracy” tab và chọn lift chart, chọn Select Nested tables là “TestArticles” và “TermVectors”  để so sánh khả năng sự phân lớp (phân các News Articles vào các 5 lớp đã biết) chính xác của các Mining Models đã xây dựng.


        

     Ngoài ra ta có thể sử dụng các công cụ trực quan khác để đánh giá khả năng phân lớp của các Model như Classification Tree, Dependency Network, Attribute Discrimination,...

     Decision Tree

     

     

    Attribute Discrimination

    Sau khi xây dựng Dictionary, TermVectors từ dữ liệu gốc (News Articles), ta có thể sử dụng các kết quả này để thực hiện các công việc khác của Text Mining như Documents Clustering (phân cụm văn bản), Documents Comparing (So sánh văn bản),  Documents Searching (tìm kiếm văn bản), Text Summarization (tổng hợp văn bản)…

     PS. All comments please send to chucnv@ud.edu.vn. Thank you and Welcome!

    • Điểm chủ đề: 95
  • 06-03-2011 09:08 PM trả lời

    Re: Text Mining với Business Intelligence Development Studio của MS SQL SERVER

    Text Mining là rắc rối nhất trong lĩnh vực Data Mining, bài viết giới thiệu tổng quát nhưng cũng rất chi tiết về các công việc trong text mining từ qui trình đến công nghệ. Bài viết thực sự có ích với mình. Chân thành cảm ơn tác giả và mong được trao đổi nhiều hơn.
    DBA,
    • Điểm chủ đề: 20
  • 06-08-2011 12:31 AM trả lời

    Re: Text Mining với Business Intelligence Development Studio của MS SQL SERVER

    anh ơi cho em hỏi. Ở ngay cái đoạn

    2.9. Thêm một “OLE DB Destination” mới và connect từ “Sort”.

    ·         Connection: localhost.TDM

    ·         Click “New” and name it “Dictionary”

                    ·         Mappings, connect the column, “Term” 
    Phần  Click “New” and name it “Dictionary” là sao anh. em không hiểu lắm. mình đổi tên nó thành “Dictionary” hay là tạo 1 cột mới có tên là “Dictionary”. Em thấy khi làm tới đó, nó có đến 2 chỗ New
    Mong anh giúp đỡ. Cám ơn anh :  )
    • Điểm chủ đề: 35
  • 06-08-2011 10:46 AM trả lời

    • chucnv
    • 10 thành viên năng nổ nhất
    • Tham gia 12-05-2008
    • Điểm 28,320

    Re: Text Mining với Business Intelligence Development Studio của MS SQL SERVER

    Phần Click “New” and name it “Dictionary” có nghĩa là tạo ra một table trong Database TDM có tên là "Dictionary". Đổi tên thành "Dictionary". Bấm nút New of the table or view (xem hình)
    • Điểm chủ đề: 35
  • 06-08-2011 12:39 PM trả lời

    • mytu
    • 75 thành viên năng nổ nhất
    • Tham gia 05-16-2011
    • Điểm 275

    Re: Text Mining với Business Intelligence Development Studio của MS SQL SERVER

    Cảm ơn tác giả bài viết. Bài viết hướng dẫn dễ hiểu và em đã làm được 1 project về Text Mining hoàn chỉnh nhờ bài viết này.
     
    • Điểm chủ đề: 20
  • 06-08-2011 04:05 PM trả lời

    Re: Text Mining với Business Intelligence Development Studio của MS SQL SERVER

    Anh ơi cho em hỏi, sao em làm tới phần cây quyết định, nó không ra giống như anh mà chỉ ra được 2 level vậy anh, hic
     
     
     
     
    Còn ở phần này, em không biết chọn Select Nested tables là “TestArticles” và “TermVectors” ở đâu. Em cũng không thấy Column Mapping giống như trong hướng dẫn của anh :-s

     
     
    Mong anh giúp đỡ. Em làm được tới đây mừng quá mà bị vướng cái này. hic
    Cám ơn anh nhiều ^^ 
    P/S: Em dùng visual 2008
     
    • Điểm chủ đề: 50
  • 06-08-2011 08:36 PM trả lời

    • chucnv
    • 10 thành viên năng nổ nhất
    • Tham gia 12-05-2008
    • Điểm 28,320

    Re: Text Mining với Business Intelligence Development Studio của MS SQL SERVER

    Trước khi tạo một Mining Structure, tạo một Data Source view (DSV) gồm 3 tables là : TrainingArticles, TestingArticles và TermVectors để làm nguồn cho các data mining model.
    Sau khi tạo xong Data Mining Structure, sau đó tạo một Data Mining Model (chẳn hạn Decision Tree), Sau khi Deloy Data Mining Model, trong Tab Accuracy, chọn Tab Column Mapping, lần lượt chọn Case table là TestingArticles và Nested table là TermVector.
    Chúc em thành công,
    • Điểm chủ đề: 20
  • 06-09-2011 07:36 AM trả lời

    Re: Text Mining với Business Intelligence Development Studio của MS SQL SERVER

    Em cám ơn anh nhiều lắm ^.^. Anh có bài viết nào về phân cụm dữ liệu (áp dụng text mining) k anh?

    Em đang rất quan tâm vấn đề đó, mà k biết phải bắt đầu từ đâu :-s

    Từ khóa đại diện:
    • Điểm chủ đề: 35
  • 07-17-2011 03:03 PM trả lời

    • ccn
    • 500 thành viên năng nổ nhất
    • Tham gia 07-17-2011
    • Điểm 20

    Re: Text Mining với Business Intelligence Development Studio của MS SQL SERVER

    Text Mining với BIDS của MS nghe giới thiệu mà chưa biết làm thế nào.
    Đọc bài viết này giờ làm được rồi. Đọc các bài viết giới thiệu về công cụ Data Mining của MS của tác giả mới biết được khả năng rất mạnh trong xây dựng các Data Mining Model của BIDS. Trước đây chỉ biết đến Weka hay SPSS thôi.
    Cảm ơn tác giả Chucnv
     
    • Điểm chủ đề: 20
  • 02-29-2012 11:28 AM trả lời

    • itdct
    • 500 thành viên năng nổ nhất
    • Tham gia 02-24-2012
    • Điểm 35

    Re: Text Mining với Business Intelligence Development Studio của MS SQL SERVER

    thầy ơi,cho em xin file  NGArticles.txt để làm demo thử ạ
    • Điểm chủ đề: 35
  • 02-29-2012 11:38 AM trả lời

    Re: Text Mining với Business Intelligence Development Studio của MS SQL SERVER

    file khá nặng, hơn 20mb, bạn pm mail của mình rồi mình gởi cho
    yenbao1340@gmail.com
    :) 
    @import url(chrome-extension://lfjamigppmepikjlacjdpgjaiojdjhoj/css/menu.css);@import url(data:text/css,);
    • Điểm chủ đề: 35
  • 02-29-2012 06:45 PM trả lời

    • tudoc
    • 200 thành viên năng nổ nhất
    • Tham gia 01-11-2012
    • Điểm 20

    Re: Text Mining với Business Intelligence Development Studio của MS SQL SERVER

      mình gửi pm vào mail bạn rồi ,bạn gửi cho mình nhé ,mình cũng đang cần ,cám ơn bạn
     
    • Điểm chủ đề: 20
  • 06-25-2019 06:15 PM trả lời

    • linh060
    • Không xếp hạng
    • Tham gia 06-25-2019
    • Điểm 20

    Re: Text Mining với Business Intelligence Development Studio của MS SQL SERVER

    Em chào anh Chức,
     
    Rất cảm ơn bài hướng dẫn chi tiết của anh đã giúp ích em rất nhiều trên con đường tìm hiểu lĩnh vực Data Science nói chung và Data Mining nói riêng.
     
    Sau khi thực hiện theo hướng dẫn của anh em có một số chỗ chưa hiểu rõ mong anh giải đáp giúp ạ:
     
    1, Trong bước Term Extract có tính Score cho Term. Sau khi insert vào bảng Dictionary, em kiểm tra thấy có những Term lại có Score = 0? Mặc dù có những term em nghĩ là khá phổ biến nhưng lại có Score = 0, ví dụ như từ "date", "subject".
     
    2, Em có thực hiện tạo 1 bảng dữ liệu test để đánh giá kết quả của tiến trình Term Extract như sau:
     
     ID NewsGroup ArticleText
    1 1 I love you baby
    2 2 I do not know why
    3 3 I remember I have already met him at somewhere
     
     Em cấu hình Term Extract cho column ArticleText với các tham số:
     
          -  Frequence Thredsold : 2
          -  Maximum  length: 2
     
     Thì kết quả extract chỉ được duy nhất 1 Term là "baby":
     
    Term Score
    baby 1.09861228866811
     
    Em không hiểu tại sao Term Extract lại không extract được các từ khác, và từ baby chỉ xuất hiện có 1 lần nhưng lại được extract.
     
    Em cảm ơn anh, mong nhận được hồi đáp của anh.
     
    Chúc anh sức khỏe, thành công! 
     
     
    • Điểm chủ đề: 20
Trang 1 trong số 1 (13 nội dung)
Powered by Community Server (Commercial Edition), by Telligent Systems