国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java實現通過日語元音ae的發音曲線分類9個發音者

lncwwn / 2947人閱讀

摘要:需要對個人的日語元音的發音分析,然后根據分析確定名發音者。九個發音者發出兩個日本元音先后。其中每塊數據中包含的行數為到不等,每行代表著發音者的一個時間幀。

業務理解(Business Understanding)
該業務是分類問題。需要對9個人的日語元音ae的發音分析,然后根據分析確定9名發音者。ae.train文件是訓練數據集,ae.test文件是用來測試訓練效果的,size_ae.test記錄了每個發音者對應的ae.test數據文件中包含數據的對應塊,同理size_ae.train記錄了實際結果每個塊對應的發音者。

數據理解(Data Understanding):
(1) 概述:數據是驗證多維時間序列曲線分類的。九個發音者發出兩個日本元音/ae/先后。對于每個發音分析參數,采用12度線性預測分析,以它來取得的LPC倒譜系數(LPCC)12離散時間序列。這意味著,一個接一個發音者話語形成一個時間序列,其長度的范圍是7-29,每一個時間序列是12個特征值。
在時間序列數共分640塊。270塊用做訓練,用370塊進行測試。270塊對應著ae.train文件,370塊數據對應著ae.test文件。
(2)訓練集數據理解:size_ae.train中的數據是30 30 30 30 30 30 30 30 30,表示9個發音者對應的數據塊數(1-30塊對應著第一個說話者,31-60對應第二個說話者,以此類推),這是 ae.train中的數據發音者對應發音的情況;在ae.train中有270塊數據,塊與塊之間有一個空行作為分割的標志。其中每塊數據中包含的行數為7到29不等,每行代表著發音者的一個時間幀。每行包含了12屬性列,因為使用的是12LPCC。
(3) 測試集數據有兩種方式理解:
在ae.test中有370塊數據,塊與塊之間有一個空行作為分割的標志。其中每塊數據中包含的行數為7到29不等,每行代表著發音者的一個時間幀。每行包含了12屬性列。
方式A:size_ae.test中的數據是31 35 88 44 29 24 40 50 29,表示9個發音者對應的數據塊數(1-31對應著第一個說話者,以此類推)。則樣本集是以分塊為單位,即對應9個待估計樣本,預測這9個人對應的發音者。
方式B:ae.test對應的370塊對應不同人的發音測試樣本,如此就需要對370個樣本判斷對應的發音者(1-9類發音者)。
預測:我采用了B鐘方式的理解做的,由于B中方式的樣本太少,預測正確率一定比A低。(由于時間有限,沒有去實現A方式的的預測,B正確率90.5%)
(4) 數據預處理:由于從ae.train和ae.test數據文件看,沒有缺失值,一共12維,每維數據范圍差距以及不同數據維差距都不大,所以不需要對數據進行歸一化處理。暫且認定數據質量是完整的,沒有出錯的。

數據準備(Data Preparation)
(1)數據選擇:12維的數據都要選擇,都是重要屬性組成
(2)數據清潔:由觀察可忽略數據源可能在測試或人為記錄中的錯誤,忽略噪音,沒有缺失值,不需要人為對缺失值處理等;
(3)數據創建:在原有數據的基礎上根據塊的劃分,將270塊按照size_ae.train文件要求以30一份劃分為9類,分別對應9個人不同發音類,在12維數據之前加上tagClass作為類的標志(tagClass:1-9),建立13維;
(4)數據合并:沒有需要合并的數據,在數據準備階段,中間處理過程有需要合并的;
(5)數據格式化:由訓練集文件得12維的數據格式都是數字類型,double型,而且都是保留6位小數,如果保留小數位不統一,則需要進行處理,使數據格式一致,但文檔中數據格式已經比較規范,而且不同數據維之間都是用空格間隔。

建立模型(Modeling)
(1) 模型設計,設計方案:
A. 在訓練集中,有270個塊,對于每一塊,取每列(維)的平均值作為該塊維度的一個評估,這樣可保證每個塊每維數據獨立于其他塊的維度數據,以塊作為單位進行數據處理。即把每一塊的數據,相當于一個(7-29)行12列的矩陣,轉化為一個12維的list或數組,轉化過程以每塊每維的平均值作為list值組成。
B. 由上一步可以得到一個270行12列的大矩陣(或者簡單說是270個list),然后對270個進行類劃分,根據size_ae.train文件要求以30一份劃分為9類,分別對應9個人不同發音類,即對應9人,每個人有一個矩陣30*12,添加一個屬性tagClass(1-9),標志不同的類,即不同矩陣屬于對應的類(1-9);
C. 把測試樣本(以370個為單位),把每個樣本代入到以上9類(9個矩陣)計算歐幾里德距離,取最小距離所在的類為樣本歸屬類。

模型評估(Evaluation)
(1)預測結果:運行結果如下圖 ,包括文件讀取和生成之類的,在最后一個main函數里面調用,用了1.407秒。

(2) 結果評估:由于選取了每個塊中的每維平均值做為該塊該維的平均值,在數值上沒問題,但忽略了該維中時間序列(7-29)間的順序值特征,所以此問題是導致算法估計沒有得到更高準確率的原因。
(3)算法改進:
第一步: 對每個分塊,每一維分別建立時間序列(7-29)和對應的具體值的線性回歸方程(y=kx+b),因為直線的斜率能反應分塊時間序列變化對應的具體值的變化趨勢,同時加了b后整個值能反映某維值范圍。然后抽取整個塊的每維值(k,b),則每個塊能轉換為list,list里面有1行,24列的矩陣,Eg:(k1,b1,k2,b2,k3,b3,k4,b4……….k12,b12)
第二步:把測試集370個樣本也轉換為370個list,然后算歐幾里德距離。
例如:對應測試集(k1’,b1’,…………………….k12’,b12’)
計算距離:Distance = Math.sqrt(Math.pow((k1-k1’),2)+ Math.pow((b1-b1’),2))+….. +Math.sqrt(Math.pow((k12-k12’),2)+ Math.pow((b12-b12’),2));
然后取距離最小所在的類作為該測試集樣本類,這個估計算法概率可以達到95%及以上。

(2) 算法實現:
A.項目框架

B.各類函數及作用分析
(本人覺得沒有特別復雜的函數實現,故沒復制代碼解釋 ,具體實現看項目代碼)
? ReadWriteTest.java: 讀取處理文件格式,把270塊->270“行”->9個矩陣(加上類標,但獨立保存每個矩陣對應的30行)
①writerTxt函數:
input:內容,路徑 (把內容寫到指定文件)
output:多個文件D://bigdata//test-270.txt,D://bigdata//train-9-30.txt,
②readTxt函數:
對原數據進行格式處理->1把270塊轉換為270行;2. 把270行分為9類,加上類標
intput:讀的路徑,flag 0,1分別對train,test做不同處理
output:多出2個txt文件 內容,test-270.txt,train-9-30
? SampleClassify.java: 測試樣本,輸出預測值
①mapSpeakers變量:
存儲所有發音者類對應其行(每行是一個塊的轉換), key是發音者類,value是對應30個行(用二維數組存儲)
②getSpeakerMatrix函數:初始化矩陣,30
13
③readTxtTrain函數:取train文件值,存儲到mapSpeakers中
④readTxtTest函數:
讀取test中370個sample,每個sample進行和9個類的距離計算,然后存在數組中,然后比較得到最小的,最小所在類即是該sample所屬類(發音者)
⑤ getClassifyTag函數:
返回距離最近的那個類的標號:1-9之間 sample 是1-370塊中的樣本,是一個一維數組,長度13,第一位表示下標
? CheckoutCorrect.java: 驗證正確率

①blockArr數組: 定義劃分塊,使方便能根據塊輸出samplId tagClass,
方便自己預測值于實際預測文件中值進行比較
②outputCompareTest:ae.train的結果通過size_ae.train劃分,存儲到文件compare.txt中,格式:sampleId tagClass
③predictionCorrect:比較兩個文件內容,輸出正確預測值的概率

具體代碼參考bitbucket地址:bitbucket 原代碼

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64277.html

相關文章

  • 使用 JavaScript 進行單詞發音 Use JavaScript to Speech Your

    摘要:在草案中增加了對的支持主要作用在兩個非常重要的方面語音識別將所說的轉換成文本文字語音合成將文本文字讀出來而在版本發布后宣布對該特性的支持今天重要介紹第二部分。是一款基于的跨平臺的發音支持類庫,支持超過種語言和種聲音,分為免費版和商業版。 showImg(https://segmentfault.com/img/bVuZqk); 在w3c草案中增加了對Web Speech Api的支持;...

    xingqiba 評論0 收藏0
  • AWS人工智能版圖

    摘要:的人工智能版圖人工智能版圖由應用平臺框架三大部分組成應用層是提供各種應用服務,比如平臺層是平臺。應用層主推三大成熟應用基于深度學習的圖像和視頻分析它能實現對象與場景檢測人臉分析面部比較人臉識別名人識別圖片調節等功能。 AWS的人工智能版圖AWS人工智能版圖由:應用、平臺、框架三大部分組成AI應用層:是提供各種...

    Pluser 評論0 收藏0
  • AWS人工智能版圖

    摘要:的人工智能版圖人工智能版圖由應用平臺框架三大部分組成應用層是提供各種應用服務,比如平臺層是平臺。應用層主推三大成熟應用基于深度學習的圖像和視頻分析它能實現對象與場景檢測人臉分析面部比較人臉識別名人識別圖片調節等功能。AWS的人工智能版圖 AWS人工智能版圖由:應用、平臺、框架三大部分組成 AI應用層:是提供各種應用服務,比如Amazon Rekognition、Polly...

    William_Sang 評論0 收藏0
  • 博客 - 收藏集 - 掘金

    摘要:技術之類加載機制掘金類加載機制是語言的一大亮點,使得類可以被動態加載到虛擬機中。玩轉仿探探卡片式滑動效果掘金講起本篇博客的歷史起源,估計有一段歷史了。 Java 技術之類加載機制 - Android - 掘金類加載機制是 Java 語言的一大亮點,使得 Java 類可以被動態加載到 Java 虛擬機中。 這次我們拋開術語和概念,從例子入手,由淺入深地講解 Java 的類加載機制。 本文...

    Shimmer 評論0 收藏0

發表評論

0條評論

lncwwn

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<