2019年8月15日 星期四

檔案檢索與自然語言處理

安裝 python-docx 套件 (此時版本為 0.8.10)

    pip install python-docx

第一版程式-顯示 Word 檔所有段落內容

    import docx
    doc = docx.Document('C:\Temp\Sample.docx')
    for p in doc.paragraphs:
        print(p.text)

**********************************************************************************************************************

第二版程式-搜尋指定目錄及子目錄下所有 Word 檔

    import os, docx
    dir_tree=os.walk('C:\Temp')
    keyword = 'e-CBR'
    print('搜尋字串:{}'.format(keyword))
    for dirname, subdir, files in dir_tree:
        allfiles = []
        for file in files:
            ext = file.split('.')[-1]
            if ext == 'docx':
                allfiles.append(dirname + '/' + file)
        for file in allfiles:
            print('正在搜尋 <{}> 檔案'.format(file))
            try:
                doc = docx.Document(file)
                line = 0
                for p in doc.paragraphs:
                    line = line + 1
                    if keyword in p.text:
                        print('在第 {} 段文字中找到「{}」\n{}'.format(line, keyword, p.text))
            except:
                print('無法讀取 {} 檔案'.format(file))
    print('搜尋完畢')

**********************************************************************************************************************

安裝 jieba 套件 (此時版本為 0.39)

    pip install jieba

第三版程式-斷詞

    import jieba
    sentence = '由於網路媒體具有不受時間與空間限制的特性'
    breakword = jieba.cut(sentence)
    print('|'.join(breakword)) 

斷詞結果

    由||網路|媒體|具有|不受|時間||空間|限制||特性

**********************************************************************************************************************

本版程式參考Python 機器學習與深度學習特訓班」7.3 的「newsCloud1.py修改而成。

安裝 wordcloud 套件 (此時版本為 1.5.0)

    pip install wordcloud

第四版程式-文字雲

    import jieba
    import matplotlib.pyplot as plt
    from collections import Counter
    from wordcloud import WordCloud
    text = open('C:\Temp\Sample.txt', 'r', encoding='utf-8').read()
    jieba.set_dictionary('C:\Temp\Dictionary\dict.txt.big.txt')
    with open('C:\Temp\Dictionary\StopWord.txt', 'r', encoding='utf-8-sig') as f:
        stops = f.read().split('\n')
    terms = []
    for t in jieba.cut(text, cut_all=False):
        if t not in stops:
            terms.append(t)
    diction = Counter(terms)
    font = 'msyh.ttc'
    wordcloud = WordCloud(font_path=font)
    wordcloud.generate_from_frequencies(frequencies=diction)
    plt.figure(figsize=(6,6))
    plt.imshow(wordcloud)
    plt.axis('off')
    plt.show()

原文:
由於網路媒體具有不受時間與空間限制的特性,擁有即時發布、隨時接收的能力,透過網際網路更可以達到傳播無國界的效果。在網際網路與互動科技的蓬勃發展後,互動感知與回饋提供網路媒體一個全新的舞台,而在此媒體與科技整合的同時,如視覺傳達、商業設計、應用美術等領域,相互整合後的綜效宏大;而如資訊工程、網路與通訊、多媒體應用等領域與電信整合為資訊科技,並進一步與傳播媒體整合發展,創造出了數位內容傳播、數位媒體、媒體製作、感知設計、網路加值服務、人機互動、以及資訊設計等新興領域。此外,近幾年更因為智慧型行動裝置的普及,使得雲端運算、大數據分析、人工智慧等應用深入生活,而這些跨領域的整合,勢必將帶領人們進入全新的新媒體時代。從網際網路普及後,因數位匯流使得包括資訊、電信、媒體等產業產生劇烈變化。而各行各業為因應數位化而產生許多新的營運模式與市場契機,這些變化的關鍵都是起因於數位內容的發展,而造成新一波的產業革命。數位內容主要是以數位化思考而創作,具有傳播的特質,以數位化形式存在,並以數位媒體做為主要的傳播工具。數位內容的根本其實是知識資本,藉由資訊科技的應用將內容不斷創新,以創造價值,其範疇包括數位遊戲、電腦動畫、數位學習、數位影音應用、行動應用服務、網路服務、內容軟體、數位出版典藏等八個領域。

文字雲:


**********************************************************************************************************************

本版程式參考Python 機器學習與深度學習特訓班」7.4 的「summary1.py」與「https:// github.com/wangle1218/nlp-demo/tree/master/text-summarization」的AutoSummary.py」模組修改而成。

第五版程式-文章自動摘要

    import AutoSummary as autosum
    with open('C:\Temp\Sample.txt', 'r', encoding='utf8') as f:
        text = f.read()
    stops = []
    with open('C:\Temp\Dictionary\StopWord.txt', 'r', encoding='utf8') as f:
        for line in f.readlines():
            stops.append(line.strip())
    sentences, indexs = autosum.split_sentence(text)
    tfidf = autosum.get_tfidf_matrix(sentences, stops)
    word_weight = autosum.get_sentence_with_words_weight(tfidf)
    posi_weight = autosum.get_sentence_with_position_weight(sentences)
    scores = autosum.get_similarity_weight(tfidf)
    sort_weight = autosum.ranking_base_on_weigth(word_weight, posi_weight, scores, \
                           feature_weight=[1, 1, 1])
    summary = autosum.get_summarization(indexs, sort_weight, topK_ratio=0.1)
    print('原文:\n', text)
    print('')
    print('摘要:\n', summary)

原文:
由於網路媒體具有不受時間與空間限制的特性,擁有即時發布、隨時接收的能力,透過網際網路更可以達到傳播無國界的效果。在網際網路與互動科技的蓬勃發展後,互動感知與回饋提供網路媒體一個全新的舞台,而在此媒體與科技整合的同時,如視覺傳達、商業設計、應用美術等領域,相互整合後的綜效宏大;而如資訊工程、網路與通訊、多媒體應用等領域與電信整合為資訊科技,並進一步與傳播媒體整合發展,創造出了數位內容傳播、數位媒體、媒體製作、感知設計、網路加值服務、人機互動、以及資訊設計等新興領域。此外,近幾年更因為智慧型行動裝置的普及,使得雲端運算、大數據分析、人工智慧等應用深入生活,而這些跨領域的整合,勢必將帶領人們進入全新的新媒體時代。從網際網路普及後,因數位匯流使得包括資訊、電信、媒體等產業產生劇烈變化。而各行各業為因應數位化而產生許多新的營運模式與市場契機,這些變化的關鍵都是起因於數位內容的發展,而造成新一波的產業革命。數位內容主要是以數位化思考而創作,具有傳播的特質,以數位化形式存在,並以數位媒體做為主要的傳播工具。數位內容的根本其實是知識資本,藉由資訊科技的應用將內容不斷創新,以創造價值,其範疇包括數位遊戲、電腦動畫、數位學習、數位影音應用、行動應用服務、網路服務、內容軟體、數位出版典藏等八個領域。
總整課程專案(Capstone Project)是一個重要的課程,本學院每位大學部學生都需要修習一個學年,學生團隊必須選擇一個有興趣的主題進行研究,並在總整課程專案中創建他們的學習成果。藉由各項基礎實作課程以及總整課程專案的規劃來培養學生持續學習的能力,在基礎技術的養成後,讓同學能持續的精進與學習來追求更進階的技術能力,最後藉由總整課程專案做一個完整的呈現,培養學生實務應用與團隊合作的能力,使學生畢業後能快速投入職場。在現階段,為了確保總整課程專案的水準,在第一學期初舉行第一次發表,讓同學報告企畫書的內容,學期末舉行第二次發表,由評審老師檢視同學的完整企劃與內容;在第二學期初舉行第三次發表,讓同學報告執行成果,因為已經製作一個暑假,規範同學的完成度必須達到90%以上,才能通過評審;學期末舉行第四次發表,由評審老師檢視同學的完整作品。本學院為了彰顯總整課程專案的重要性,第四次發表必須全系教師與學生到場聆聽,讓同學感受評審的嚴峻挑戰,做為學弟妹們學習與努力的方針。雖然在製作專案的過程中,各組組員有許多的衝突與爭執,但是都在指導老師與組員之間的相互包容與溝通,互相釐清歧見,化異求同取得適當解決問題的方法,這些過程對於提升同學的溝通與團隊合作的能力具有非常高的助益。
然而傳統的學習策略並未善加利用領域知識和以前的作品經驗,無法有效提升學生的協同設計能力。資訊科技與網路媒體整合後的網路社群,提供一個即時與高維度的知識分享環境,能提高參與者之知識擷取成效,培養參與者成為探究性強、具有創意、既可獨立又可合作的社群公民。網路社群不只改變傳統的合作模式,亦提供合作團隊中成員溝通、資訊交換與分享之機會。透過網路,可以蒐集資料、遇到難懂的觀念亦可以向專家請益、與網友分享彼此成果,經由相互的回饋與交流,放大自己的視野,進而獲得專業成長,達到自我成長以及專業合作之目的。而藉由互動科技所能提供的具體化體感經驗對學習者的學習過程尤為重要,因為從實物操作中,學習者可以學得更透徹。而數位學習所提供的個別化學習,學習者更能依照自己的進度進行學習,而且藉由豐富的多媒體學習內容更可提供學習者情境式與問題解決式的學習環境,幫助其解決需實際操作或抽象思考等問題。此外,維護過去的成功經驗應被視為數位學習的重要組成部分,以提高學生的學習成績。因此,它們越來越受歡迎,並且在教育中具有相對低成本與易於獲取資源的感知價值。
因此,本白提書提出一個e-CBR+AI平台,不僅可以檢索類似作品案例,還可以透過分析以前的設計組合提供設計框架,幫助學生進行腦力激盪(Brainstorming)和建立協同設計的共識,並維護總整課程專案設計組合。協同設計(Collaborative Design)是一種有效的設計策略,可以提高學生在設計過程中的動機、成就,以及與同伴的關係,透過分享經驗,可從與同學的互動中創建所需的知識。通常需要協作努力才能成功地為某些跨學科項目建立共識。因此,協作能力成為維持個人競爭力不可或缺的能力。基於案例的推理(Case-Based Reasoning,CBR)是一種基於類似過去問題的解決方案來解決新問題的流行方法。CBR循環並命名循環中的四個R:檢索、重用、修改和保留。透過包含額外的架構知識來幫助學生在設計過程中進行協作設計,從而增強了(Enhanced CBR,e-CBR)。e-CBR可以提高學習步驟的有效性,例如收集各種材料、反映原始主題、選擇適當的解決方案、呈現項目結果、分析過程、討論和分享結果,以及最終結果。創造性思維(Creative Thinking)是創造新事物的能力、偏離模式和普遍接受的方案。這是開始總整課程專案的第一步,並從人員、流程、產品和環境等四個不同的角度考慮創造力。採用適當設計框架的良好策略可以幫助學生發展他們的總整課程專案。但是,如果沒有一個良好的平台來妥善存儲過去的好案例和設計組合,結果將無法輕易查詢和共享。

摘要:
在網際網路與互動科技的蓬勃發展後,互動感知與回饋提供網路媒體一個全新的舞台,而在此媒體與科技整合的同時,如視覺傳達、商業設計、應用美術等領域,相互整合後的綜效宏大;而如資訊工程、網路與通訊、多媒體應用等領域與電信整合為資訊科技,並進一步與傳播媒體整合發展,創造出了數位內容傳播、數位媒體、媒體製作、感知設計、網路加值服務、人機互動、以及資訊設計等新興領域。藉由各項基礎實作課程以及總整課程專案的規劃來培養學生持續學習的能力,在基礎技術的養成後,讓同學能持續的精進與學習來追求更進階的技術能力,最後藉由總整課程專案做一個完整的呈現,培養學生實務應用與團隊合作的能力,使學生畢業後能快速投入職場。
因此,本白提書提出一個e-CBR+AI平台,不僅可以檢索類似作品案例,還可以透過分析以前的設計組合提供設計框架,幫助學生進行腦力激盪(Brainstorming)和建立協同設計的共識,並維護總整課程專案設計組合。

沒有留言:

張貼留言