精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用深度神經網絡處理NER命名實體識別問題

人工智能 深度學習 移動開發
命名實體識別(NER)是指識別文本中具有特定意義的實體,主要包括人名、地名、機構名、專有名詞等。命名實體識別是信息提取、問答系統、句法分析、機器翻譯等應用領域的重要基礎工具,作為結構化信息提取的重要步驟。

本文結構:
 

  1. 什么是命名實體識別(NER)
  2. 怎么識別?

cs224d Day 7: 項目2-用DNN處理NER問題

課程項目描述地址

什么是NER?

命名實體識別(NER)是指識別文本中具有特定意義的實體,主要包括人名、地名、機構名、專有名詞等。命名實體識別是信息提取、問答系統、句法分析、機器翻譯等應用領域的重要基礎工具,作為結構化信息提取的重要步驟。摘自 BosonNLP

怎么識別?

先把解決問題的邏輯說一下,然后解釋主要的代碼,有興趣的話,完整代碼請去 這里看 。

代碼是在 Tensorflow 下建立只有一個隱藏層的 DNN 來處理 NER 問題。

1.問題識別:

NER 是個分類問題。

給一個單詞,我們需要根據上下文判斷,它屬于下面四類的哪一個,如果都不屬于,則類別為0,即不是實體,所以這是一個需要分成 5 類的問題:

  1. • Person (PER) 
  2. • Organization (ORG) 
  3. • Location (LOC) 
  4. • Miscellaneous (MISC) 

我們的訓練數據有兩列,***列是單詞,第二列是標簽。

  1. EU ORG 
  2. rejects O 
  3. German MISC 
  4. Peter PER 
  5. BRUSSELS LOC 

2.模型:

接下來我們用深度神經網絡對其進行訓練。

模型如下:

輸入層的 x^(t) 為以 x_t 為中心的窗口大小為3的上下文語境,x_t 是 one-hot 向量,x_t 與 L 作用后就是相應的詞向量,詞向量的長度為 d = 50 :

我們建立一個只有一個隱藏層的神經網絡,隱藏層維度是 100,y^ 就是得到的預測值,維度是 5:

用交叉熵來計算誤差:

J 對各個參數進行求導:

得到如下求導公式:

在 TensorFlow 中求導是自動實現的,這里用Adam優化算法更新梯度,不斷地迭代,使得loss越來越小直至收斂。

3.具體實現

在 def test_NER() 中,我們進行 max_epochs 次迭代,每次,用 training data 訓練模型 得到一對 train_loss, train_acc ,再用這個模型去預測 validation data,得到一對 val_loss, predictions ,我們選擇最小的 val_loss ,并把相應的參數 weights 保存起來,***我們是要用這些參數去預測 test data 的類別標簽:

  1. def test_NER(): 
  2. config = Config() 
  3. with tf.Graph().as_default(): 
  4. model = NERModel(config) # 最主要的類 
  5.  
  6. init = tf.initialize_all_variables() 
  7. saver = tf.train.Saver() 
  8.  
  9. with tf.Session() as session: 
  10. best_val_loss = float('inf') # ***的值時,它的 loss 它的 迭代次數 epoch 
  11. best_val_epoch = 0 
  12.  
  13. session.run(init) 
  14. for epoch in xrange(config.max_epochs): 
  15. print 'Epoch {}'.format(epoch) 
  16. start = time.time() 
  17. ### 
  18. train_loss, train_acc = model.run_epoch(session, model.X_train, 
  19. model.y_train) # 1.把 train 數據放進迭代里跑,得到 loss 和 accuracy 
  20. val_loss, predictions = model.predict(session, model.X_dev, model.y_dev) # 2.用這個model去預測 dev 數據,得到loss 和 prediction 
  21. print 'Training loss: {}'.format(train_loss) 
  22. print 'Training acc: {}'.format(train_acc) 
  23. print 'Validation loss: {}'.format(val_loss) 
  24. if val_loss < best_val_loss: # 用 val 數據的loss去找最小的loss 
  25. best_val_loss = val_loss 
  26. best_val_epoch = epoch 
  27. if not os.path.exists("./weights"): 
  28. os.makedirs("./weights"
  29.  
  30. saver.save(session, './weights/ner.weights') # 把最小的 loss 對應的 weights 保存起來 
  31. if epoch - best_val_epoch > config.early_stopping: 
  32. break 
  33. ### 
  34. confusion = calculate_confusion(config, predictions, model.y_dev) # 3.把 dev 的lable數據放進去,計算prediction的confusion 
  35. print_confusion(confusion, model.num_to_tag) 
  36. print 'Total time: {}'.format(time.time() - start) 
  37.  
  38. saver.restore(session, './weights/ner.weights') # 再次加載保存過的 weights,用 test 數據做預測,得到預測結果 
  39. print 'Test' 
  40. print '=-=-=' 
  41. print 'Writing predictions to q2_test.predicted' 
  42. _, predictions = model.predict(session, model.X_test, model.y_test) 
  43. save_predictions(predictions, "q2_test.predicted") # 把預測結果保存起來 
  44.  
  45. if __name__ == "__main__"
  46. test_NER() 

4.模型是怎么訓練的呢?

首先導入數據 training,validation,test:

  1. # Load the training set 
  2. docs = du.load_dataset('data/ner/train'
  3.  
  4. # Load the dev set (for tuning hyperparameters) 
  5. docs = du.load_dataset('data/ner/dev'
  6.  
  7. # Load the test set (dummy labels only) 
  8. docs = du.load_dataset('data/ner/test.masked'

把單詞轉化成 one-hot 向量后,再轉化成詞向量:

  1. def add_embedding(self): 
  2.   # The embedding lookup is currently only implemented for the CPU 
  3.   with tf.device('/cpu:0'): 
  4.  
  5.     embedding = tf.get_variable('Embedding', [len(self.wv), self.config.embed_size])    # assignment 中的 L     
  6.     window = tf.nn.embedding_lookup(embedding, self.input_placeholder)                # 在 L 中直接把window大小的context的word vector搞定 
  7.     window = tf.reshape( 
  8.       window, [-1self.config.window_size * self.config.embed_size]) 
  9.  
  10.     return window 

建立神經層,包括用 xavier 去初始化***層, L2 正則化和用 dropout 來減小過擬合的處理:

  1. def add_model(self, window): 
  2.  
  3.   with tf.variable_scope('Layer1', initializer=xavier_weight_init()) as scope:        # 用initializer=xavier去初始化***層 
  4.     W = tf.get_variable(                                                                # ***層有 W,b1,h 
  5.         'W', [self.config.window_size * self.config.embed_size, 
  6.               self.config.hidden_size]) 
  7.     b1 = tf.get_variable('b1', [self.config.hidden_size]) 
  8.     h = tf.nn.tanh(tf.matmul(window, W) + b1) 
  9.     if self.config.l2:                                                                # L2 regularization for W 
  10.         tf.add_to_collection('total_loss'0.5 * self.config.l2 * tf.nn.l2_loss(W))    # 0.5 * self.config.l2 * tf.nn.l2_loss(W) 
  11.  
  12.   with tf.variable_scope('Layer2', initializer=xavier_weight_init()) as scope: 
  13.     U = tf.get_variable('U', [self.config.hidden_size, self.config.label_size]) 
  14.     b2 = tf.get_variable('b2', [self.config.label_size]) 
  15.     y = tf.matmul(h, U) + b2 
  16.     if self.config.l2: 
  17.         tf.add_to_collection('total_loss'0.5 * self.config.l2 * tf.nn.l2_loss(U)) 
  18.   output = tf.nn.dropout(y, self.dropout_placeholder)                                    # 返回 output,兩個variable_scope都帶dropout 
  19.  
  20.   return output 

關于 L2正則化 和 dropout 是什么, 如何減小過擬合問題的,可以看 這篇博客,總結的簡單明了。

用 cross entropy 來計算 loss:

  1. def add_loss_op(self, y): 
  2.  
  3.   cross_entropy = tf.reduce_mean(                                                        # 1.關鍵步驟:loss是用cross entropy定義的 
  4.       tf.nn.softmax_cross_entropy_with_logits(y, self.labels_placeholder))                # y是模型預測值,計算cross entropy 
  5.   tf.add_to_collection('total_loss', cross_entropy)            # Stores value in the collection with the given name. 
  6.                                                               # collections are not sets, it is possible to add a value to a collection several times. 
  7.   loss = tf.add_n(tf.get_collection('total_loss'))            # Adds all input tensors element-wise. inputs: A list of Tensor with same shape and type 
  8.  
  9.   return loss 

接著用 Adam Optimizer 把loss最小化:

  1. def add_training_op(self, loss): 
  2.  
  3.   optimizer = tf.train.AdamOptimizer(self.config.lr) 
  4.   global_step = tf.Variable(0, name='global_step', trainable=False
  5.   train_op = optimizer.minimize(loss, global_step=global_step)    # 2.關鍵步驟:用 AdamOptimizer 使 loss 達到最小,所以更關鍵的是 loss 
  6.  
  7.   return train_op 

每一次訓練后,得到了最小化 loss 相應的 weights。

這樣,NER 這個分類問題就搞定了,當然為了提高精度等其他問題,還是需要查閱文獻來學習的。下一次先實現個 RNN。

責任編輯:林師授 來源: 簡網
相關推薦

2020-08-28 12:00:47

NER人工智能深度學習

2024-03-18 13:36:36

大型語言模型個人可識別信息

2017-11-10 11:51:39

Python自然語言分析器

2017-05-25 11:24:18

達觀數據NER系統

2018-01-04 15:50:44

深度學習自然語言機器學習

2018-02-05 08:58:36

Python神經網絡識別圖像

2019-10-29 08:50:31

深度學習編程人工智能

2017-12-05 15:32:44

深度學習語音識別

2023-06-26 06:55:25

2022-10-11 23:35:28

神經網絡VGGNetAlexNet

2017-12-22 08:47:41

神經網絡AND運算

2010-10-15 12:21:55

2018-01-29 00:16:16

神經網絡遞歸卷積深度學習

2022-10-19 07:42:41

圖像識別神經網絡

2022-06-06 13:05:32

神經網絡宇宙

2017-05-23 18:54:18

深度學習人工智能

2017-03-22 11:59:40

深度神經網絡

2025-02-25 10:50:11

2016-12-27 14:24:57

課程筆記神經網絡
點贊
收藏

51CTO技術棧公眾號

亚洲精品成人无码| 国产无限制自拍| 91精东传媒理伦片在线观看| 一个色综合网| 亚洲国产精品高清久久久| 农村妇女精品一二区| 无遮挡的视频在线观看 | 国产精品久久久久久| 精品三级av在线| 91极品尤物在线播放国产| 丝袜美腿av在线| 国产欧美日韩麻豆91| 俄罗斯精品一区二区三区| 中文字幕在线观看视频网站| 五月天久久网站| 亚洲精品福利在线| 91插插插影院| 天堂av中文在线观看| 成人欧美一区二区三区| 欧美高清视频一区二区三区在线观看 | 日韩中文字幕| 精品成人乱色一区二区| 综合网五月天| 美国一级片在线免费观看视频| 精品一区二区三区日韩| 日本精品久久久| 日本黄色小说视频| 第一会所亚洲原创| 亚洲欧洲在线播放| 久久亚洲AV成人无码国产野外 | 久草手机视频在线观看| 国产传媒欧美日韩成人精品大片| 欧美成人a视频| 五月天丁香花婷婷| 精品69视频一区二区三区| 欧美性猛交xxxx富婆弯腰| 国产免费裸体视频| 91网址在线观看| 国产精品久久久久久亚洲伦| 日本日本精品二区免费| 偷拍精品一区二区三区| 高清不卡在线观看| 99久久精品无码一区二区毛片| 中文字幕一区二区三区四区视频 | 国产精品视频999| 人妻 日韩精品 中文字幕| 亚洲激情婷婷| 98精品在线视频| 国产福利拍拍拍| aa国产精品| 国内自拍欧美激情| 久久精品人妻一区二区三区| 欧美三区美女| 九九热这里只有精品6| 五月天婷婷色综合| 最新欧美人z0oozo0| 久久成人精品一区二区三区| 希岛爱理中文字幕| 中国成人一区| 欧美第一黄色网| 久久久久亚洲av成人片| 影院欧美亚洲| 38少妇精品导航| 国产性生活视频| 日本中文在线一区| 91日本视频在线| 好吊视频一区二区三区| av资源站一区| 婷婷四月色综合| 免费黄色网页在线观看| 亚洲另类春色国产| 欧美日韩不卡在线视频| 亚洲精品福利电影| 欧美视频一区二区三区四区| 在线观看国产一级片| 国产亚洲字幕| 亚洲精品久久久久国产| 男人操女人动态图| 天天做天天爱天天综合网| 欧美国产精品va在线观看| 国产乡下妇女做爰毛片| 久久久久久黄| 国产这里只有精品| 亚洲精品国产精| 久久免费偷拍视频| 五月天色婷婷综合| а√天堂中文在线资源8| 色婷婷狠狠综合| 五月天婷婷在线观看视频| 北条麻妃在线一区二区免费播放| 亚洲精品视频网上网址在线观看| 亚洲女人毛茸茸高潮| 亚洲视频碰碰| 国产精品免费久久久| 亚洲av无码一区二区三区性色| 91一区二区三区在线观看| 亚洲 日韩 国产第一区| 成全电影大全在线观看| 欧美在线观看视频一区二区| 麻豆传媒在线看| 欧美日一区二区| 久久久久久久久国产精品| 一区二区三区在线免费观看视频| 国产传媒久久文化传媒| 日韩av图片| 77thz桃花论族在线观看| 欧美日韩情趣电影| 久久人妻少妇嫩草av无码专区| 91欧美日韩| 日本精品免费一区二区三区| 亚洲大尺度视频| 亚洲国产高清在线| 国产91在线免费| 九九九九九九精品任你躁 | 91麻豆免费在线视频| 在线视频你懂得一区二区三区| 一级全黄裸体片| 欧美国产小视频| 日韩美女毛茸茸| 涩涩视频免费看| 一区二区三区日韩欧美| 成 人 黄 色 小说网站 s色| 九九久久成人| 51精品在线观看| 国产小视频一区| 亚洲欧美偷拍卡通变态| 日本超碰在线观看| 热久久天天拍国产| 日本精品久久久久影院| 亚洲三级中文字幕| 午夜亚洲国产au精品一区二区| 久久精品久久99| 99久久精品国产亚洲精品| 国产精品成久久久久三级| 日本免费不卡| 五月激情六月综合| 黄色av网址在线观看| 欧美日韩亚洲一区在线观看| 亚洲自拍偷拍一区| 麻豆系列在线观看| 91麻豆精品91久久久久同性| 蜜桃av免费在线观看| 日韩av中文字幕一区二区三区| 免费在线一区二区| 欧美7777| 亚洲欧美综合区自拍另类| 老熟妇仑乱一区二区av| 久久美女艺术照精彩视频福利播放| 精品无码国模私拍视频| 牛牛影视一区二区三区免费看| 国外视频精品毛片| 四虎永久在线精品免费网址| 无吗不卡中文字幕| 黄色aaa视频| 久久精品女人| 色999五月色| 欧美v亚洲v综合v国产v仙踪林| 最近日韩中文字幕中文| 国产又黄又大又爽| 亚洲欧美另类久久久精品2019| 中文字幕一区久久| 午夜精品网站| 国产精品免费一区二区三区在线观看 | 99国产精品无码| 麻豆精品一二三| 99re8这里只有精品| 日韩视频在线直播| 91av国产在线| 91女主播在线观看| 欧美一区二区黄| 国产午夜精品无码| 久久久精品国产免大香伊| mm131亚洲精品| 欧美不卡在线| 美媛馆国产精品一区二区| 国产麻豆久久| 欧美区在线播放| 日韩亚洲视频在线观看| 欧美日韩视频在线一区二区| 欧美黄色aaa| 久久亚区不卡日本| 免费成年人高清视频| 国产综合色产| 日韩欧美激情一区二区| 欧美一级大片在线视频| 2019中文字幕在线观看| 日本在线免费| 亚洲精品电影网| 国产精品久久久久久免费播放| 午夜视频一区二区| youjizz亚洲女人| 成人免费毛片app| 日韩一级片播放| 韩国在线一区| 五月天色一区| 99久久香蕉| 国产欧美一区二区| 人在线成免费视频| 麻豆乱码国产一区二区三区 | 超碰在线免费97| 亚洲国产wwwccc36天堂| 国产综合精品久久久久成人av| 成人在线综合网站| 亚洲免费av一区| 视频一区国产视频| 欧美啪啪免费视频| 亚洲综合激情在线| 午夜视频久久久| 美女av一区| 99re在线国产| 四虎视频在线精品免费网址| 欧美一级高清免费| 黄视频在线免费看| 免费99精品国产自在在线| 成年人视频在线观看免费| 亚洲精品成人久久久| 亚洲国产精品成人久久蜜臀| 欧美嫩在线观看| 国产精品成人久久久| 欧美日韩精品二区| 精品一区在线视频| 一区二区三区四区中文字幕| 91香蕉视频污在线观看| 久久综合五月天婷婷伊人| 国产精品久久久久久在线观看| 国产综合色视频| 999精彩视频| 日产国产欧美视频一区精品| 99色精品视频| 国产一区导航| 无码播放一区二区三区| 亚洲性视频h| 国产精品久久久影院| 久久久久蜜桃| 最近中文字幕免费mv| 婷婷成人基地| 天天干天天色天天爽| 久久久久久久久丰满| 一本色道久久综合亚洲二区三区| 精品国产一区二区三区小蝌蚪| 久久视频在线观看中文字幕| 日韩精品导航| 久久亚洲一区二区| 美女久久久久| 欧美在线激情| 第四色成人网| 自拍偷拍视频在线| 午夜精品久久久久99热蜜桃导演| 四虎4hu永久免费入口| 欧美va天堂| 男人插女人视频在线观看| 伊人久久亚洲美女图片| 男女视频网站在线观看| 国产亚洲毛片| 成人免费视频久久| 免费成人美女在线观看.| 色播五月激情五月| 国产高清在线观看免费不卡| 久久久久亚洲AV成人网人人小说| 国产99久久久国产精品| 性感美女一区二区三区| 91影院在线免费观看| 9.1成人看片免费版| 99re热这里只有精品免费视频| 久久国产精品影院| 国产精品三级视频| 中文字幕手机在线观看| 亚洲va欧美va天堂v国产综合| 成人免费看片98欧美| 色哟哟精品一区| 中文人妻熟女乱又乱精品| 欧美一区二区三区在线电影| 亚洲精品视频专区| 亚洲视频自拍偷拍| 国产一二区在线观看| 久久久久久久久久国产| 欧美不卡高清一区二区三区| 91影视免费在线观看| 国产精品调教| 日韩久久不卡| 国产在线成人| 浓精h攵女乱爱av| 成人一区二区三区中文字幕| 四虎永久免费影院| 亚洲视频一区二区在线| 中文字幕亚洲精品在线| 欧美日韩精品一区视频| 欧美视频久久久| 色哟哟亚洲精品一区二区| 国产乱码在线| 国产精品一久久香蕉国产线看观看| jizz性欧美23| 亚洲国产精品www| 影音先锋一区| 日韩va在线观看| 久久亚洲影视婷婷| 欧美被狂躁喷白浆精品| 色综合av在线| 成人午夜精品福利免费| 在线播放日韩av| 免费成人在线电影| 亚洲free嫩bbb| 激情综合网站| 成人免费aaa| 国产成人啪免费观看软件| 在线看片中文字幕| 欧美日韩久久久久| 亚洲国产综合一区| 久久国产一区二区三区| 成人免费福利| 九九九九久久久久| 狠狠爱www人成狠狠爱综合网 | 大尺度一区二区| 顶级黑人搡bbw搡bbbb搡| 色综合天天天天做夜夜夜夜做| 亚洲精品久久久久avwww潮水| 色偷偷噜噜噜亚洲男人| 欧美自拍电影| 久久这里精品国产99丫e6| 韩国在线视频一区| 1314成人网| 综合激情成人伊人| 中文字字幕在线中文乱码| 亚洲天堂网站在线观看视频| 亚洲精品中文字幕| 久久久久一区二区三区| 99亚洲视频| 日本在线不卡一区二区| 亚洲一区二区影院| 精品国产九九九| 久久躁日日躁aaaaxxxx| 9999精品| 欧美日韩亚洲国产成人| 九九视频精品免费| 色婷婷粉嫩av| 欧美二区在线观看| 超碰在线无需免费| 92看片淫黄大片看国产片| 欧美freesextv| 天天综合天天添夜夜添狠狠添| 国产精品视频一二| 在线播放成人av| 色妞欧美日韩在线| 欧美午夜三级| 久久免费视频2| 国产高清视频一区| 国产在线视频在线观看| 精品国产乱码久久久久久牛牛 | 羞羞答答成人影院www| av在线免费看片| 日韩美女久久久| 国产高清免费观看| 久久久亚洲精选| 男人的天堂久久| 欧美一级黄色影院| 中文字幕不卡在线观看| 一起草av在线| 欧美黄色三级网站| 日韩高清电影免费| 在线免费观看视频黄| 亚洲少妇最新在线视频| 精品国自产在线观看| 久久久久久亚洲精品不卡| 亚洲福利天堂| 亚洲一级片免费| 亚洲精品伦理在线| 亚洲欧洲精品视频| 国产精品狠色婷| 亚洲成人tv| 欧美一区二区免费在线观看| 色婷婷亚洲精品| 久久综合网导航| 国产一区二区三区四区hd| 日日摸夜夜添夜夜添国产精品| 91社区视频在线观看| 日韩欧美一级在线播放| 亚洲性色av| 在线精品亚洲一区二区| 成人综合在线视频| 波多野结衣小视频| 草民午夜欧美限制a级福利片| 久久久亚洲欧洲日产| 欧美精品性生活| 亚洲综合无码一区二区| 韩国精品视频| 波多野结衣一区二区三区在线观看| 亚洲免费综合| 久久国产美女视频| 亚洲人成77777在线观看网| 麻豆国产一区二区三区四区| 欧美成人xxxxx| 亚洲欧洲av色图| 加勒比一区二区三区在线| 亚洲综合第一页| 日韩av一区二区在线影视| 青青草手机在线观看| 一区二区三区天堂av| 国产suv精品一区二区四区视频| 91 在线视频观看| 黑人巨大精品欧美一区二区免费 |