คำถามติดแท็ก natural-language

การประมวลผลภาษาธรรมชาติเป็นชุดของเทคนิคจากภาษาศาสตร์ปัญญาประดิษฐ์การเรียนรู้ของเครื่องจักรและสถิติที่มุ่งเน้นที่การประมวลผลและการทำความเข้าใจภาษามนุษย์

2
วิธีการ. similarity ใน SpaCy คำนวณอย่างไร
ไม่แน่ใจว่านี่เป็นไซต์สแต็กที่ถูกต้องหรือไม่ วิธีการ. ความคุ้นเคยทำงานอย่างไร ว้าว spaCy ยอดเยี่ยมมาก! รูปแบบ tfidf นั้นง่ายกว่า แต่ w2v มีโค้ดเพียงบรรทัดเดียว! ในบทช่วยสอน 10 บรรทัดของเขา บน spaCy andrazhribernik แสดงให้เราเห็นถึงวิธีการ. similarity ที่สามารถเรียกใช้บนโทเค็น, เซ็นต์, การส่งคำ, ชิ้นคำและเอกสาร หลังจากnlp = spacy.load('en')และdoc = nlp(raw_text) เราสามารถทำ. สอบถามความคล้ายคลึงกันระหว่างโทเค็นและชิ้น อย่างไรก็ตามการคำนวณอะไรที่อยู่เบื้องหลังของฉากใน.similarityวิธีนี้? SpaCy มีความเรียบง่ายอย่างไม่น่าเชื่อ.vectorซึ่งคำนวณเวกเตอร์ w2v ที่ผ่านการฝึกอบรมจากแบบจำลอง GloVe (วิธี.tfidfหรือ.fasttextวิธีการที่ยอดเยี่ยมจะเป็นอย่างไร) แบบจำลองนั้นคำนวณความคล้ายคลึงโคไซน์ระหว่างสอง w2v, .vector, เวกเตอร์หรือการเปรียบเทียบเมทริกซ์อื่น ๆ หรือไม่? ข้อมูลเฉพาะไม่ชัดเจนในเอกสาร ; ความช่วยเหลือใด ๆ ชื่นชม!

3
ทำไม softmax แบบลำดับขั้นดีกว่าสำหรับคำที่ไม่บ่อยนักในขณะที่การสุ่มตัวอย่างเชิงลบจะดีกว่าสำหรับคำที่ใช้บ่อย
ฉันสงสัยว่าทำไม softmax แบบลำดับชั้นนั้นดีกว่าสำหรับคำที่ไม่บ่อยนักในขณะที่การสุ่มตัวอย่างเชิงลบจะดีกว่าสำหรับคำที่ใช้บ่อยใน CBOW ของ word2vec และโมเดล skip-gram ฉันได้อ่านข้อเรียกร้องในhttps://code.google.com/p/word2vec/

2
การดักจับรูปแบบเริ่มต้นเมื่อใช้การขยายส่วนแบ็คอัปที่ผ่านการตัดทอนผ่านเวลา (RNN / LSTM)
บอกว่าฉันใช้ RNN / LSTM เพื่อทำการวิเคราะห์ความเชื่อมั่นซึ่งเป็นวิธีการแบบตัวต่อตัว (ดูบล็อกนี้ ) เครือข่ายได้รับการฝึกฝนผ่านการ backpropagation ที่ถูกตัดทอนผ่านช่วงเวลา (BPTT) ซึ่งเครือข่ายไม่ได้ถูกควบคุมในขั้นตอนสุดท้ายเพียง 30 ขั้นตอนตามปกติ ในกรณีของฉันแต่ละส่วนข้อความของฉันที่ฉันต้องการจัดหมวดหมู่นั้นมีความยาวมากกว่า 30 ขั้นตอนที่ไม่ได้ถูกควบคุม (ประมาณ 100 คำ) จากความรู้ของฉัน BPTT ใช้เวลาเพียงครั้งเดียวสำหรับส่วนข้อความเดียวซึ่งก็คือเมื่อมันผ่านส่วนข้อความทั้งหมดและคำนวณเป้าหมายการจำแนกเลขฐานสองซึ่งเปรียบเทียบกับฟังก์ชันการสูญเสียเพื่อค้นหาข้อผิดพลาดyyy การไล่ระดับสีจะไม่ถูกคำนวณโดยคำนึงถึงคำแรกของแต่ละส่วนข้อความ RNN / LSTM จะยังสามารถปรับน้ำหนักเพื่อจับรูปแบบเฉพาะที่เกิดขึ้นภายในสองสามคำแรกเท่านั้นได้อย่างไร ตัวอย่างเช่นสมมติว่าประโยคทั้งหมดที่ทำเครื่องหมายว่าเริ่มต้นด้วย "ฉันรักสิ่งนี้" และประโยคทั้งหมดที่ทำเครื่องหมายว่าเริ่มต้นด้วย "ฉันเกลียดสิ่งนี้" RNN / LSTM จะจับได้อย่างไรว่าเมื่อมันถูกยกเลิกการลงทะเบียนสำหรับ 30 ขั้นตอนสุดท้ายเมื่อพบกับจุดสิ้นสุดของลำดับความยาว 100 ขั้นตอนpositivepositivepositivenegativenegativenegative

2
เหตุใดจึงใช้ n-gram ในการระบุภาษาข้อความแทนที่จะเป็นคำ?
ในไลบรารีการระบุภาษาที่ได้รับความนิยมสองเครื่อง Compact Language Detector 2 สำหรับ C ++ และเครื่องตรวจจับภาษาสำหรับ Java ทั้งคู่ใช้ (ตามอักขระ) n-grams เพื่อแยกคุณลักษณะข้อความ ทำไมไม่ใช้ถุงแบบคำ (คำเดียว / พจนานุกรม) และข้อดีและข้อเสียของถุงแบบคำและ n-g คืออะไร นอกจากนี้การใช้แบบจำลอง n-grams อื่น ๆ ในการจำแนกข้อความมีประโยชน์อะไรบ้าง? โอ้โห ดูเหมือนว่ามีคำถามที่คล้ายกันที่นี่: เกี่ยวกับการใช้แบบจำลอง Bigram (N-Gram) เพื่อสร้างเวกเตอร์คุณลักษณะสำหรับเอกสารข้อความ แต่ใครบางคนสามารถให้คำตอบที่ครอบคลุมมากขึ้น? ในกรณีที่มีการระบุภาษาดีกว่า (หวังว่าฉันจะได้ความหมายของ n-gg และถุงของคำถูกต้องฮ่าฮ่าถ้าไม่ได้โปรดช่วยฉันด้วย)

2
วิธีการใช้เครือข่ายประสาทเทียมกับปัญหาการจำแนกประเภทฉลากหลายป้าย?
รายละเอียด: ให้โดเมนปัญหาเป็นการจัดหมวดหมู่เอกสารที่มีชุดของเวกเตอร์คุณลักษณะแต่ละอันอยู่ใน 1 คลาสขึ้นไป ตัวอย่างเช่นเอกสารdoc_1อาจเป็นของSportsและEnglishหมวดหมู่ คำถาม: การใช้เครือข่ายประสาทเทียมสำหรับการจำแนกประเภทฉลากจะเป็นอย่างไรสำหรับเวกเตอร์คุณลักษณะ มันจะเป็นเวกเตอร์ที่ประกอบขึ้นเป็นคลาสทั้งหมดหรือไม่ซึ่งค่า 0 นั้นมอบให้กับคลาสที่ไม่เกี่ยวข้องและ 1 สำหรับคลาสที่เกี่ยวข้อง? ดังนั้นหากรายการป้ายกำกับของชั้นเรียนอยู่[Sports, News, Action, English, Japanese]สำหรับเอกสารdoc_1ป้ายกำกับจะเป็น[1, 0, 0, 1, 0]อย่างไร

3
แบบจำลอง skip-gram ของ Word2Vec สร้างเวกเตอร์เอาต์พุตได้อย่างไร
ฉันมีปัญหาในการทำความเข้าใจโมเดลอัลกอริทึมของ Word2Vec ในกระเป๋าของคำอย่างต่อเนื่องเป็นเรื่องง่ายที่จะเห็นว่าคำบริบทสามารถ "พอดี" ในเครือข่ายประสาทเนื่องจากคุณโดยเฉลี่ยพวกเขาหลังจากที่คูณการเป็นตัวแทนการเข้ารหัสหนึ่งร้อนด้วยเมทริกซ์อินพุต W. อย่างไรก็ตามในกรณีของ skip-gram คุณจะได้รับเวกเตอร์คำอินพุตโดยการคูณการเข้ารหัสแบบร้อนกับเมทริกซ์อินพุตและจากนั้นคุณควรจะได้เวกเตอร์ C (= ขนาดหน้าต่าง) สำหรับคำบริบทโดยการคูณ การแทนค่าเวกเตอร์อินพุทด้วยเมทริกซ์เอาต์พุต W ' สิ่งที่ฉันหมายถึงคือการมีคำศัพท์ขนาดและการเข้ารหัสขนาด ,อินพุตเมทริกซ์และเป็นเมทริกซ์เอาต์พุต ให้คำว่าด้วยการเข้ารหัสหนึ่งร้อนด้วยคำบริบทและ (กับ reps หนึ่งร้อนและ ) ถ้าคุณคูณด้วยเมทริกซ์อินพุตคุณจะได้รับตอนนี้คุณจะสร้างเวกเตอร์คะแนนจากสิ่งนี้ได้อย่างไรN W ∈ R V × N W ' ∈ R N × V W ฉันx ฉันW J W H x J x H x ฉัน W …

1
Word ฝังอัลกอริทึมในแง่ของประสิทธิภาพ
ฉันพยายามฝังวลีประมาณ60 ล้านวลีลงในช่องว่างเวกเตอร์จากนั้นคำนวณความคล้ายคลึงโคไซน์ระหว่างพวกเขา ฉันใช้ sklearn CountVectorizerพร้อมกับฟังก์ชั่น tokenizer ที่สร้างขึ้นเองที่สร้าง unigrams และ bigrams ปรากฎว่าการได้รับการรับรองที่มีความหมายฉันต้องยอมให้มีคอลัมน์จำนวนมหาศาลเป็นเส้นตรงในจำนวนแถว สิ่งนี้นำไปสู่เมทริกซ์กระจัดกระจายอย่างไม่น่าเชื่อและกำลังฆ่าประสิทธิภาพ มันจะไม่เลวร้ายนักหากมีคอลัมน์ประมาณ 10,000 คอลัมน์เท่านั้นซึ่งฉันคิดว่าค่อนข้างสมเหตุสมผลสำหรับการจัดเรียงคำ ฉันกำลังคิดจะลองใช้งาน Google word2vecเพราะฉันค่อนข้างแน่ใจว่ามันจะสร้างมิติที่ต่ำกว่าและมีงานแต่งงานที่หนาแน่นมากขึ้น แต่ก่อนหน้านั้นมีงานแต่งงานอื่น ๆ ที่อาจรับประกันดูครั้งแรกหรือไม่? ข้อกำหนดที่สำคัญจะสามารถปรับขนาดได้ประมาณ 60 ล้านวลี (แถว) ฉันค่อนข้างใหม่ในด้านการใช้คำศัพท์เพื่อช่วยให้คำแนะนำใด ๆ ฉันควรเพิ่มว่าฉันใช้การสลายตัวของค่าเอกพจน์เพื่อปรับปรุงประสิทธิภาพแล้ว

1
การชี้แจงความคาดหวังสูงสุด
ผมพบว่าการกวดวิชาที่เป็นประโยชน์มากเกี่ยวกับอัลกอริทึม EM ตัวอย่างและรูปภาพจากบทช่วยสอนนั้นยอดเยี่ยมมาก คำถามที่เกี่ยวข้องเกี่ยวกับการคำนวณความน่าจะเป็นการเพิ่มความคาดหวังทำงานอย่างไร ฉันมีคำถามอื่นเกี่ยวกับวิธีการเชื่อมต่อทฤษฎีที่อธิบายในบทช่วยสอนกับตัวอย่าง gtgtg_tlogP(x;Θ)log⁡P(x;Θ)\log P(x;\Theta)gt(Θ^(t))=logP(x;Θ^(t))gt(Θ^(t))=log⁡P(x;Θ^(t))g_t( \hat{\Theta}^{(t)}) = \log P(x; \hat{\Theta}^{(t)}) gtgtg_t Θ^(0)A=0.6Θ^A(0)=0.6\hat{\Theta}_A^{(0)} = 0.6Θ^(0)B=0.5Θ^B(0)=0.5\hat{\Theta}_B^{(0)} = 0.5Θ^(1)A=0.71Θ^A(1)=0.71\hat{\Theta}_A^{(1)} = 0.71Θ^(1)B=0.58Θ^B(1)=0.58\hat{\Theta}_B^{(1)} = 0.58Θ^(0)Θ^(0)\hat{\Theta}^{(0)}Θ^(1)Θ^(1)\hat{\Theta}^{(1)} Q(z)Q(z)Q(z)Q(z)=P(z|x;Θ)Q(z)=P(z|x;Θ)Q(z)=P(z|x;\Theta) ขอบคุณ.

1
ข้อดีและข้อเสียของการใช้ข้อมูลร่วมกันแบบจุดในเมทริกซ์การคิดคำก่อน SVD คืออะไร?
วิธีหนึ่งในการสร้างคำ embeddings มีดังนี้ ( กระจก ): รับ corpora เช่น "ฉันสนุกกับการบินฉันชอบ NLP ฉันชอบการเรียนรู้ลึก" สร้างเมทริกซ์การทับซ้อนของคำจากมัน: ดำเนินการ SVD บนXXXและเก็บคอลัมน์kkkแรกของ U U1:|V|,1:kU1:|V|,1:kU_{1:|V|,1:k} ระหว่างขั้นตอนที่ 2 และ 3 ข้อมูลบางอย่างจะถูกนำมาใช้ร่วมกันในบางจุด(เช่นA. Herbelot และ EM Vecchi 2015. การสร้างโลกที่ใช้ร่วมกัน: การทำแผนที่การกระจายไปยังพื้นที่เชิงความหมายแบบจำลองเชิงทฤษฎีในการประชุม . ลิสบอน, โปรตุเกส .) ข้อดีและข้อเสียของการใช้ข้อมูลร่วมกันแบบจุดในเมทริกซ์การคิดคำก่อน SVD คืออะไร?

2
คำถามเกี่ยวกับ Bag of Words ต่อเนื่อง
ฉันมีปัญหาในการเข้าใจประโยคนี้: สถาปัตยกรรมที่เสนอครั้งแรกคล้ายกับ NNLM ของ feedforward โดยที่เลเยอร์ที่ไม่ใช่เชิงเส้นจะถูกลบออกและเลเยอร์การฉายจะใช้ร่วมกันสำหรับทุกคำ (ไม่ใช่แค่เมทริกซ์การฉาย); ดังนั้นคำทั้งหมดจึงถูกฉายในตำแหน่งเดียวกัน (เวกเตอร์ของพวกมันมีค่าเฉลี่ย) ชั้นฉายภาพกับเมทริกซ์การฉายคืออะไร? มันหมายความว่าอย่างไรที่คำทุกคำจะถูกฉายในตำแหน่งเดียวกัน แล้วทำไมเวกเตอร์ของพวกมันจึงมีค่าเฉลี่ย? ประโยคที่เป็นครั้งแรกของส่วนที่ 3.1 ของการประมาณค่าที่มีประสิทธิภาพของการแสดงคำในปริภูมิเวกเตอร์ (Mikolov et al. 2013)

2
การจัดการคำที่ไม่รู้จักในงานสร้างแบบจำลองภาษาโดยใช้ LSTM
สำหรับภารกิจการประมวลผลภาษาธรรมชาติ (NLP) มักใช้เวกเตอร์ word2vecเพื่อฝังคำ อย่างไรก็ตามอาจมีคำที่ไม่รู้จักจำนวนมากที่ไม่ได้ถูกจับโดย word2vec vector เพียงเพราะคำเหล่านี้ไม่ได้เห็นบ่อยในข้อมูลการฝึกอบรม (การใช้งานจำนวนมากใช้การนับขั้นต่ำก่อนเพิ่มคำลงในคำศัพท์) นี่อาจเป็นกรณีที่มีข้อความจากเช่น Twitter ซึ่งคำมักสะกดผิด ควรจัดการคำที่ไม่รู้จักเช่นนั้นอย่างไรเมื่อสร้างแบบจำลองงาน NLP เช่นการคาดการณ์ความเชื่อมั่นโดยใช้เครือข่ายระยะสั้นระยะยาว (LSTM) ฉันเห็นสองตัวเลือก: การเพิ่มโทเค็น 'คำที่ไม่รู้จัก' ในพจนานุกรม word2vec การลบคำที่ไม่รู้จักเหล่านี้ออกไปเพื่อที่ LSTM จะไม่รู้แม้แต่คำนั้นในประโยค วิธีที่เหมาะสมในการจัดการคำเหล่านี้คืออะไร?

5
วิธีการวัดการกระจายตัวในข้อมูลความถี่ของคำ?
ฉันจะหาปริมาณการกระจายตัวในเวกเตอร์ที่มีการนับคำได้อย่างไร ฉันกำลังมองหาสถิติที่จะสูงสำหรับเอกสาร A เนื่องจากมีคำต่าง ๆ มากมายที่เกิดขึ้นไม่บ่อยนักและต่ำสำหรับเอกสาร B เพราะมันมีหนึ่งคำ (หรือคำไม่กี่คำ) ที่เกิดขึ้นบ่อยครั้ง โดยทั่วไปแล้วจะวัดการกระจายตัวหรือ "สเปรด" ในข้อมูลระบุได้อย่างไร มีวิธีมาตรฐานในการทำสิ่งนี้ในชุมชนการวิเคราะห์ข้อความหรือไม่?

1
ทำความเข้าใจเกี่ยวกับการใช้ลอการิทึมในลอการิทึม TF-IDF
ฉันกำลังอ่าน: https://en.wikipedia.org/wiki/Tf%E2%80%93idf#Definition แต่ฉันไม่สามารถเข้าใจได้อย่างชัดเจนว่าทำไมสูตรจึงสร้างในแบบที่มันเป็น ฉันเข้าใจอะไร: iDF ควรที่จะวัดระดับความบ่อยครั้งที่คำ S ปรากฏในเอกสารแต่ละฉบับลดลงตามมูลค่าเมื่อคำนั้นปรากฏบ่อยขึ้น จากมุมมองนั้น ฉันD F.( S) = # ของเอกสาร# ของเอกสารที่มี SผมDF(S)=# ของเอกสาร# ของเอกสารที่มี S iDF(S) = \frac{\# \text{ of Documents}}{\# \text{ of Documents containing S}} นอกจากนี้ความถี่เทอมสามารถอธิบายได้อย่างถูกต้องว่า t f( S, D ) = # ของเหตุการณ์ S ในเอกสาร D # จำนวนการเกิดขึ้นสูงสุดสำหรับสตริง Q ใด ๆ ในเอกสาร D …

3
เกี่ยวกับการใช้โมเดล bigram (N-gram) เพื่อสร้างฟีเจอร์ vector สำหรับเอกสารข้อความ
วิธีการดั้งเดิมของการสร้างฟีเจอร์สำหรับการขุดข้อความเป็นวิธีถุงแบบคำและสามารถปรับปรุงได้โดยใช้ tf-idf สำหรับการตั้งค่าคุณลักษณะเวกเตอร์ที่แสดงลักษณะของเอกสารข้อความที่กำหนด ในปัจจุบันฉันกำลังพยายามใช้โมเดลภาษาสองแกรมหรือ (N-Gram) เพื่อสร้างเวกเตอร์คุณลักษณะ แต่ไม่ทราบวิธีการทำเช่นนั้นใช่หรือไม่ เราสามารถทำตามวิธีการของคำพูดเช่นการคำนวณจำนวนความถี่ในรูปแบบของ bi-gram แทนที่จะเป็นคำพูดและปรับปรุงมันด้วยวิธีการถ่วงน้ำหนัก tf-idf?

2
ฉันจะจัดกลุ่มสตริงตามธีมทั่วไปได้อย่างไร
ฉันกำลังพยายามจัดกลุ่มเช่นสตริงเกี่ยวกับการเขียนโปรแกรมกับสตริงอื่น ๆ เกี่ยวกับการเขียนโปรแกรมสตริงเกี่ยวกับฟิสิกส์กับสตริงอื่น ๆ เกี่ยวกับฟิสิกส์ ฯลฯ สำหรับหัวข้อที่หลากหลาย แม้จะมีแง่มุมทางภาษาที่ชัดเจนทางทฤษฎีของปัญหา แต่ฉันกำลังมองหาที่จะทำสิ่งนี้โดยใช้การเขียนโปรแกรม / ซอฟต์แวร์ บทสรุป:ด้วยสตริงจำนวนมากฉันจะจัดกลุ่มตามธีมความหมายได้อย่างไร แอปพลิเคชันเฉพาะ:ฉันมีคำถามแบบไม่สำคัญประมาณ 200,000 คำถามที่ฉันต้องการจัดหมวดหมู่เป็นกลุ่มร่วมกัน (รถยนต์คอมพิวเตอร์การเมืองแคนาดาอาหารบารักโอบา ฯลฯ ) สิ่งที่ฉันได้ดู: Wikipedia มีรายการชุดเครื่องมือประมวลผลภาษาธรรมชาติ (สมมติว่าสิ่งที่ฉันพยายามทำจริง ๆ แล้วเรียกว่า NLP) ดังนั้นฉันจึงดูบ้าง แต่ดูเหมือนไม่มีใครทำอะไรที่คล้ายกับความต้องการของฉัน หมายเหตุ:มีการชี้ให้เห็นว่าการทำเช่นนี้ต้องใช้ความรู้เพิ่มเติม (เช่น Porsche เป็นรถยนต์ส่วน C ++ เป็นภาษาโปรแกรม) ฉันคิดว่าจำเป็นต้องใช้ข้อมูลการฝึกอบรม แต่ถ้าฉันมีเพียงรายการคำถามและคำตอบฉันจะสร้างข้อมูลการฝึกอบรมได้อย่างไร จากนั้นฉันจะใช้ข้อมูลการฝึกอบรมอย่างไร หมายเหตุเพิ่มเติม:หากการจัดรูปแบบปัจจุบันของความช่วยเหลือ Q & As ของฉัน (แม้ว่าจะดูเหมือนว่า JSON มันเป็นไฟล์ข้อความดิบ): // row 1: is metadata …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.