トークン化
トークン化とは?? 簡単に言えば、テキストを単語または文に分割します…
ここでは、NLP で使用できるさまざまなトークナイザーについて説明します…………
- ホワイトスペース
text = 'Earth was born around 4.54 billion years ago.'
print(text.split())
# output
# ['Earth', 'was', 'born', 'around', '4.54', 'billion', 'years', 'ago.']
2.特定の分割
空白と同じですが、ここでは必要splitなスプリッターを指定します
text = 'Egypt, a country linking northeast Africa with the Middle East, dates to the time of the pharaohs.'
print(text.split(','))
# output
# ['Egypt', ' a country linking northeast Africa with the Middle East', ' dates to the time of the pharaohs.']
3.NLTK _
NLTK は、人間の言語データを扱う Python プログラムを構築するための主要なプラットフォームです。使用できるトークナイザーはたくさんあります
l) word_toknizer: split 関数の問題を解決します:
ll) sent_tokenize:以前にトレーニングしたモデルとして分割テキストを使用します。
lll) wordpunct_tokenize:ここでは、すべての単語と句読点を分割します。
iv) TreebankWordTokenizer:この句読点?!.,;のようにテキストを分割しますが、これは英単語のさまざまな一般的なルールです。
V) TweetTokenizer:?!.,;テキストを句読点として絵文字に分割します
Vl) MWETokenizer:add_mweここでは、このトークナイザーが提供するので、必要に応じてトークンを追加できます。
4.テキストブロブ
TextBlob は、テキスト データを処理するための Python (2 および 3) ライブラリです。これは、品詞のタグ付け、名詞句の抽出、感情分析、分類、翻訳などの一般的な自然言語処理 (NLP) タスクに飛び込むためのシンプルな API を提供します。
from textblob import TextBlob
text="""But I'm glad you'll see me as I am. Above all, I wouldn't want people to think that I want to
prove anything. I don't want to prove anything, I just want to live; to cause no evil to anyone but myself.
I have that right, haven't I? Leo Tolstoy """
blob_object= TextBlob(text) # Word tokenization of the text
text_words = blob_object.words # To see all tokens
print(text_words) # To count the number of tokens
print(len(text_words))
# output
# ['But', 'I', "'m", 'glad', 'you', "'ll", 'see', 'me', 'as', 'I', 'am', 'Above', 'all', 'I', 'would', "n't", 'want', 'people', 'to', 'think', 'that', 'I', 'want', 'to', 'prove', 'anything', 'I', 'do', "n't", 'want', 'to', 'prove', 'anything', 'I', 'just', 'want', 'to', 'live', 'to', 'cause', 'no', 'evil', 'to', 'anyone', 'but', 'myself', 'I', 'have', 'that', 'right', 'have', "n't", 'I', 'Leo', 'Tolstoy']
# 55
5.スペイシー
spaCy は、Python の自然言語処理のための無料のオープンソース ライブラリです。NER、POS タグ付け、依存関係の解析、単語ベクトルなどを備えています。
6.ゲンシム
Gensim: これは、教師なしトピック モデリングと自然言語処理で使用される、Radim Rehurek によって書かれた Python のオープンソース ライブラリです。ドキュメントからセマンティック トピックを抽出するように設計されています。大規模なテキスト コレクションを処理できます。
7.ケラス
Keras はオープンソース ライブラリであり、最も信頼性の高いディープ ラーニング フレームワークの 1 つです。トークン化を実行するには、クラス Keras.preprocessing.text クラスの text_to_word_sequence メソッドを使用します。Keras の優れた点は、トークン化する前にアルファベットを小文字に変換することです。これにより、時間を大幅に節約できます。
from keras.preprocessing.text import Tokenizer
from keras.preprocessing.text import text_to_word_sequence
text = "Two things are infinite: the universe and human stupidity; and I'm not sure about the universe. #Albert Einstein"
tokinzer = Tokenizer(num_words=20) # as recommended we put here the max text length we have
tokinzer.fit_on_texts(text)
tokens = text_to_word_sequence(text)
print(tokens)
# output
# ['two', 'things', 'are', 'infinite', 'the', 'universe', 'and', 'human', 'stupidity', 'and', "i'm", 'not', 'sure', 'about', 'the', 'universe', '', 'albert', 'einstein']
8.サブワードベースのトークン化
人気のあるトークン化は、単語ベースのトークン化と文字ベースのトークン化の間のソリューションであるサブワード ベースのトークン化です。主なアイデアは、単語ベースのトークン化 (非常に大きな語彙サイズ、多数の OOV トークン、および非常に類似した単語の異なる意味) と文字ベースのトークン化 (非常に長いシーケンスとあまり意味のない個々のトークン) が直面する問題を解決することです。
サブワード ベースのトークン化アルゴリズムでは、次の原則が使用されます。
- 頻繁に使用される単語を小さなサブワードに分割しないでください。
- 珍しい単語をより小さな意味のあるサブワードに分割します。
課題
トークン化タスクの課題と制限について説明しましょう。
一般に、このタスクは英語またはフランス語で書かれたテキスト コーパスに使用されます。これらの言語では、空白または句読点を使用して単語を区切り、文の境界を定義します。残念ながら、この方法は、中国語、日本語、韓国語、タイ語、ヒンディー語、ウルドゥー語、タミル語などの他の言語には適用できません。この問題により、すべての言語を組み合わせた共通のトークン化ツールを開発する必要が生じます。
アラビア語は言語として複雑な形態を持っているため、アラビア語テキストのトークン化には別の制限があります。たとえば、アラビア語の 1 つの単語には、「عقد」(eaqad)という単語のように、最大 6 つの異なるトークンが含まれる場合があります。
結論
この分野では多くの種類の研究が行われており、成長しており、NLP に直面する多くの課題がありますが、将来これらの問題が解決されることがわかります。
このリンクでコードを見ることができます

![とにかく、リンクリストとは何ですか?[パート1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































