import os
! apt-get update -qq > /dev/null
# Install java
! apt-get install -y openjdk-8-jdk-headless -qq > /dev/null
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
os.environ["PATH"] = os.environ["JAVA_HOME"] + "/bin:" + os.environ["PATH"]
! pip install nlu pyspark==2.4.4 > /dev/null
import nlu
https://www.kaggle.com/kashnitsky/news-about-major-cryptocurrencies-20132018-40k
import pandas as pd
import nlu
!wget http://ckl-it.de/wp-content/uploads/2020/12/small_btc.csv
df = pd.read_csv('/content/small_btc.csv').title
df
--2021-02-11 15:11:47-- http://ckl-it.de/wp-content/uploads/2020/12/small_btc.csv Resolving ckl-it.de (ckl-it.de)... 217.160.0.108, 2001:8d8:100f:f000::209 Connecting to ckl-it.de (ckl-it.de)|217.160.0.108|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 22244914 (21M) [text/csv] Saving to: ‘small_btc.csv’ small_btc.csv 100%[===================>] 21.21M 5.84MB/s in 3.9s 2021-02-11 15:11:52 (5.41 MB/s) - ‘small_btc.csv’ saved [22244914/22244914]
0 Bitcoin Price Update: Will China Lead us Down? 1 Key Bitcoin Price Levels for Week 51 (15 – 22 ... 2 National Australia Bank, Citing Highly Flawed ... 3 Chinese Bitcoin Ban Driven by Chinese Banking... 4 Bitcoin Trade Update: Opened Position ... 1995 Bitcoin Bill Pay Company Living Room of Satosh... 1996 NYDFS Extends BitLicense Bitcoin Regulation Co... 1997 Bitfinex Passes Stefan Thomas’s Proof Of Solve... 1998 Cryptocurrency Exchange Platform AlphaPoint Pa... 1999 Want to Buy And Sell Bitcoin Fast and Secure? ... Name: title, Length: 2000, dtype: object
import nlu
# Predict sentiment on dataset with NLU sentiment model
sentiment_df = nlu.load('emotion').predict(df)
sentiment_df
classifierdl_use_emotion download started this may take some time. Approximate size to download 21.3 MB [OK!] tfhub_use download started this may take some time. Approximate size to download 923.7 MB [OK!]
title | text | emotion_confidence | sentence | sentence_embeddings | emotion | |
---|---|---|---|---|---|---|
origin_index | ||||||
0 | Bitcoin Price Update: Will China Lead us Down? | Bitcoin Price Update: Will China Lead us Down? | 0.998173 | Bitcoin Price Update: Will China Lead us Down? | [0.05829371139407158, -0.036904484033584595, -... | fear |
1 | Key Bitcoin Price Levels for Week 51 (15 – 22 ... | Key Bitcoin Price Levels for Week 51 (15 – 22 ... | 0.997696 | Key Bitcoin Price Levels for Week 51 (15 – 22 ... | [0.038088250905275345, -0.04514157399535179, -... | joy |
2 | National Australia Bank, Citing Highly Flawed ... | National Australia Bank, Citing Highly Flawed ... | 0.999998 | National Australia Bank, Citing Highly Flawed ... | [0.050343189388513565, -0.013036551885306835, ... | fear |
3 | Chinese Bitcoin Ban Driven by Chinese Banking... | Chinese Bitcoin Ban Driven by Chinese Banking... | 0.999135 | Chinese Bitcoin Ban Driven by Chinese Banking ... | [0.055152829736471176, -0.05237917602062225, -... | fear |
4 | Bitcoin Trade Update: Opened Position | Bitcoin Trade Update: Opened Position | 0.998864 | Bitcoin Trade Update: Opened Position | [0.059269748628139496, -0.05646341294050217, -... | joy |
... | ... | ... | ... | ... | ... | ... |
1996 | NYDFS Extends BitLicense Bitcoin Regulation Co... | NYDFS Extends BitLicense Bitcoin Regulation Co... | 0.998281 | NYDFS Extends BitLicense Bitcoin Regulation Co... | [0.0639236643910408, -0.05505230277776718, -0.... | fear |
1997 | Bitfinex Passes Stefan Thomas’s Proof Of Solve... | Bitfinex Passes Stefan Thomas’s Proof Of Solve... | 0.772052 | Bitfinex Passes Stefan Thomas’s Proof Of Solve... | [0.059178080409765244, -0.041498005390167236, ... | fear |
1998 | Cryptocurrency Exchange Platform AlphaPoint Pa... | Cryptocurrency Exchange Platform AlphaPoint Pa... | 0.999348 | Cryptocurrency Exchange Platform AlphaPoint Pa... | [0.05369672179222107, -0.023480931296944618, -... | joy |
1999 | Want to Buy And Sell Bitcoin Fast and Secure? ... | Want to Buy And Sell Bitcoin Fast and Secure? ... | 0.998905 | Want to Buy And Sell Bitcoin Fast and Secure? | [0.0626637190580368, -0.05945301055908203, -0.... | fear |
1999 | Want to Buy And Sell Bitcoin Fast and Secure? ... | Want to Buy And Sell Bitcoin Fast and Secure? ... | 0.998905 | Try CoinRNR | [0.02854502573609352, 0.055576108396053314, 0.... | fear |
2069 rows × 6 columns
sentiment_df.emotion.value_counts().plot.bar(figsize=(20,14), title = 'Emotion Distribution of Bitcoin News Articles')
<matplotlib.axes._subplots.AxesSubplot at 0x7f0f7fabd6d8>
key_df = nlu.load('yake').predict(df)
key_df
keywords_classes | keywords_confidences | text | document | title | |
---|---|---|---|---|---|
origin_index | |||||
0 | [update, china, china lead] | [0.579886257648468, 0.579886257648468, 0.50663... | Bitcoin Price Update: Will China Lead us Down? | Bitcoin Price Update: Will China Lead us Down? | Bitcoin Price Update: Will China Lead us Down? |
1 | [price, levels, price levels] | [0.579886257648468, 0.579886257648468, 0.50663... | Key Bitcoin Price Levels for Week 51 (15 – 22 ... | Key Bitcoin Price Levels for Week 51 (15 – 22 ... | Key Bitcoin Price Levels for Week 51 (15 – 22 ... |
2 | [bubble, citing highly flawed, highly flawed d... | [0.28654029965400696, 0.19553975760936737, 0.1... | National Australia Bank, Citing Highly Flawed ... | National Australia Bank, Citing Highly Flawed ... | National Australia Bank, Citing Highly Flawed ... |
3 | [ban driven, banking crisis, bitcoin ban driven] | [0.29364120960235596, 0.29364120960235596, 0.2... | Chinese Bitcoin Ban Driven by Chinese Banking... | Chinese Bitcoin Ban Driven by Chinese Banking ... | Chinese Bitcoin Ban Driven by Chinese Banking... |
4 | [update, position, opened position] | [0.579886257648468, 0.26804494857788086, 0.184... | Bitcoin Trade Update: Opened Position | Bitcoin Trade Update: Opened Position | Bitcoin Trade Update: Opened Position |
... | ... | ... | ... | ... | ... |
1995 | [operations, resumes operations, satoshi resum... | [0.26804494857788086, 0.1840423047542572, 0.16... | Bitcoin Bill Pay Company Living Room of Satosh... | Bitcoin Bill Pay Company Living Room of Satosh... | Bitcoin Bill Pay Company Living Room of Satosh... |
1996 | [period, comment period, regulation comment pe... | [0.26804494857788086, 0.1840423047542572, 0.16... | NYDFS Extends BitLicense Bitcoin Regulation Co... | NYDFS Extends BitLicense Bitcoin Regulation Co... | NYDFS Extends BitLicense Bitcoin Regulation Co... |
1997 | [proof, audit, solvency audit] | [0.579886257648468, 0.26804494857788086, 0.184... | Bitfinex Passes Stefan Thomas’s Proof Of Solve... | Bitfinex Passes Stefan Thomas’s Proof Of Solve... | Bitfinex Passes Stefan Thomas’s Proof Of Solve... |
1998 | [platform, growth, support growth] | [0.579886257648468, 0.26804494857788086, 0.184... | Cryptocurrency Exchange Platform AlphaPoint Pa... | Cryptocurrency Exchange Platform AlphaPoint Pa... | Cryptocurrency Exchange Platform AlphaPoint Pa... |
1999 | [bitcoin fast, try coinrnr, sell bitcoin fast] | [0.28912684321403503, 0.22583627700805664, 0.1... | Want to Buy And Sell Bitcoin Fast and Secure? ... | Want to Buy And Sell Bitcoin Fast and Secure? ... | Want to Buy And Sell Bitcoin Fast and Secure? ... |
2000 rows × 5 columns
You need to call .explode()
on the keyword column and then get the count of each keyword
# key_df.explode('keywords_classes').keywords_classes.value_counts()[0:100].plot.bar(title='Top 100 Keywords in Stack Overflow Questions', figsize=(20,8))
key_df.explode('keywords_classes').keywords_classes.value_counts()[0:100].plot.bar(title='Top 100 Keywords in BTC News Articles', figsize=(20,8))
<matplotlib.axes._subplots.AxesSubplot at 0x7f0f7f694e48>
To reduce dimensionality of the data and yield better results with keyword extraction, we can apply the built in stemmer on our dataset. Especially to merge occurences of termns like bitcoin
and bitcoins
Note, Lemmatizing and Normalizing could also applied for further dimension reduction, but they would noch fix the previously mentioned example
stem_df = nlu.load('stem').predict(df, output_level = 'document')
stem_df['stem_string'] = stem_df.stem.str.join(' ')
stem_df
text | stem | document | title | stem_string | |
---|---|---|---|---|---|
origin_index | |||||
0 | Bitcoin Price Update: Will China Lead us Down? | [bitcoin, price, updat, :, will, china, lead, ... | Bitcoin Price Update: Will China Lead us Down? | Bitcoin Price Update: Will China Lead us Down? | bitcoin price updat : will china lead u down ? |
1 | Key Bitcoin Price Levels for Week 51 (15 – 22 ... | [kei, bitcoin, price, level, for, week, 51, (,... | Key Bitcoin Price Levels for Week 51 (15 – 22 ... | Key Bitcoin Price Levels for Week 51 (15 – 22 ... | kei bitcoin price level for week 51 ( 15 – 22 ... |
2 | National Australia Bank, Citing Highly Flawed ... | [nation, australia, bank, ,, cite, highli, fla... | National Australia Bank, Citing Highly Flawed ... | National Australia Bank, Citing Highly Flawed ... | nation australia bank , cite highli flawe data... |
3 | Chinese Bitcoin Ban Driven by Chinese Banking... | [chines, bitcoin, ban, driven, by, chines, ban... | Chinese Bitcoin Ban Driven by Chinese Banking ... | Chinese Bitcoin Ban Driven by Chinese Banking... | chines bitcoin ban driven by chines bank crisi ? |
4 | Bitcoin Trade Update: Opened Position | [bitcoin, trade, updat, :, open, posit] | Bitcoin Trade Update: Opened Position | Bitcoin Trade Update: Opened Position | bitcoin trade updat : open posit |
... | ... | ... | ... | ... | ... |
1995 | Bitcoin Bill Pay Company Living Room of Satosh... | [bitcoin, bill, pai, compani, live, room, of, ... | Bitcoin Bill Pay Company Living Room of Satosh... | Bitcoin Bill Pay Company Living Room of Satosh... | bitcoin bill pai compani live room of satoshi ... |
1996 | NYDFS Extends BitLicense Bitcoin Regulation Co... | [nydf, extend, bitlicens, bitcoin, regul, comm... | NYDFS Extends BitLicense Bitcoin Regulation Co... | NYDFS Extends BitLicense Bitcoin Regulation Co... | nydf extend bitlicens bitcoin regul comment pe... |
1997 | Bitfinex Passes Stefan Thomas’s Proof Of Solve... | [bitfinex, pass, stefan, thomas’, proof, of, s... | Bitfinex Passes Stefan Thomas’s Proof Of Solve... | Bitfinex Passes Stefan Thomas’s Proof Of Solve... | bitfinex pass stefan thomas’ proof of solvenc ... |
1998 | Cryptocurrency Exchange Platform AlphaPoint Pa... | [cryptocurr, exchang, platform, alphapoint, pa... | Cryptocurrency Exchange Platform AlphaPoint Pa... | Cryptocurrency Exchange Platform AlphaPoint Pa... | cryptocurr exchang platform alphapoint partner... |
1999 | Want to Buy And Sell Bitcoin Fast and Secure? ... | [want, to, bui, and, sell, bitcoin, fast, and,... | Want to Buy And Sell Bitcoin Fast and Secure? ... | Want to Buy And Sell Bitcoin Fast and Secure? ... | want to bui and sell bitcoin fast and secur ? ... |
2000 rows × 5 columns
We can see bitcoins
is not a keyword anymore and added to the bitcoin
count including a lot of other occurences of Bitcoin in the dataset.
stem_df = nlu.load('yake').predict(stem_df.stem_string)
stem_df.explode('keywords_classes').keywords_classes.value_counts()[0:100].plot.bar(title='Top 100 Keywords in Stack Overflow Questions Lemmatized', figsize=(20,8))
<matplotlib.axes._subplots.AxesSubplot at 0x7f0f7f93ef98>
stem_df.explode('keywords_classes').keywords_classes.value_counts()[1:100].plot.bar(title='Top 100 Keywords in Stack Overflow Questions Lemmatized', figsize=(20,8))
<matplotlib.axes._subplots.AxesSubplot at 0x7f0f7fa7d208>
setNKeywords
to increase number of keywords extractedsetMinNGrams
Minimum N-grams a keyword shouldsetMaxNGrams
Maximum N-grams a keyword shouldsetWindowSize
Window size for Co-OccurrencesetThreshold
Keyword Score thresholdsetStopWords
The words to be filtered out. by default it's english stop words from Spark MLimport nlu
yake_pipe = nlu.load('yake')
yake_pipe.print_info()
The following parameters are configurable for this NLU pipeline (You can copy paste the examples) : >>> pipe['yake'] has settable params: pipe['yake'].setMinNGrams(1) | Info: Minimum N-grams a keyword should have | Currently set to : 1 pipe['yake'].setMaxNGrams(3) | Info: Maximum N-grams a keyword should have | Currently set to : 3 pipe['yake'].setNKeywords(3) | Info: Number of Keywords to extract | Currently set to : 3 pipe['yake'].setWindowSize(3) | Info: Window size for Co-Occurrence | Currently set to : 3 pipe['yake'].setThreshold(-1.0) | Info: Keyword Score threshold | Currently set to : -1.0 pipe['yake'].setStopWords(['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', 'your', 'yours', 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', 'her', 'hers', 'herself', 'it', 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves', 'what', 'which', 'who', 'whom', 'this', 'that', 'these', 'those', 'am', 'is', 'are', 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does', 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until', 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into', 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down', 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here', 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more', 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so', 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', 'should', 'now', "i'll", "you'll", "he'll", "she'll", "we'll", "they'll", "i'd", "you'd", "he'd", "she'd", "we'd", "they'd", "i'm", "you're", "he's", "she's", "it's", "we're", "they're", "i've", "we've", "you've", "they've", "isn't", "aren't", "wasn't", "weren't", "haven't", "hasn't", "hadn't", "don't", "doesn't", "didn't", "won't", "wouldn't", "shan't", "shouldn't", "mustn't", "can't", "couldn't", 'cannot', 'could', "here's", "how's", "let's", 'ought', "that's", "there's", "what's", "when's", "where's", "who's", "why's", 'would']) | Info: the words to be filtered out. by default it's english stop words from Spark ML | Currently set to : ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', 'your', 'yours', 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', 'her', 'hers', 'herself', 'it', 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves', 'what', 'which', 'who', 'whom', 'this', 'that', 'these', 'those', 'am', 'is', 'are', 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does', 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until', 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into', 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down', 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here', 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more', 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so', 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', 'should', 'now', "i'll", "you'll", "he'll", "she'll", "we'll", "they'll", "i'd", "you'd", "he'd", "she'd", "we'd", "they'd", "i'm", "you're", "he's", "she's", "it's", "we're", "they're", "i've", "we've", "you've", "they've", "isn't", "aren't", "wasn't", "weren't", "haven't", "hasn't", "hadn't", "don't", "doesn't", "didn't", "won't", "wouldn't", "shan't", "shouldn't", "mustn't", "can't", "couldn't", 'cannot', 'could', "here's", "how's", "let's", 'ought', "that's", "there's", "what's", "when's", "where's", "who's", "why's", 'would'] >>> pipe['sentence_detector'] has settable params: pipe['sentence_detector'].setUseAbbreviations(True) | Info: whether to apply abbreviations at sentence detection | Currently set to : True pipe['sentence_detector'].setDetectLists(True) | Info: whether detect lists during sentence detection | Currently set to : True pipe['sentence_detector'].setUseCustomBoundsOnly(False) | Info: Only utilize custom bounds in sentence detection | Currently set to : False pipe['sentence_detector'].setCustomBounds([]) | Info: characters used to explicitly mark sentence bounds | Currently set to : [] pipe['sentence_detector'].setExplodeSentences(False) | Info: whether to explode each sentence into a different row, for better parallelization. Defaults to false. | Currently set to : False pipe['sentence_detector'].setMinLength(0) | Info: Set the minimum allowed length for each sentence. | Currently set to : 0 pipe['sentence_detector'].setMaxLength(99999) | Info: Set the maximum allowed length for each sentence | Currently set to : 99999 >>> pipe['default_tokenizer'] has settable params: pipe['default_tokenizer'].setTargetPattern('\S+') | Info: pattern to grab from text as token candidates. Defaults \S+ | Currently set to : \S+ pipe['default_tokenizer'].setContextChars(['.', ',', ';', ':', '!', '?', '*', '-', '(', ')', '"', "'"]) | Info: character list used to separate from token boundaries | Currently set to : ['.', ',', ';', ':', '!', '?', '*', '-', '(', ')', '"', "'"] pipe['default_tokenizer'].setCaseSensitiveExceptions(True) | Info: Whether to care for case sensitiveness in exceptions | Currently set to : True pipe['default_tokenizer'].setMinLength(0) | Info: Set the minimum allowed legth for each token | Currently set to : 0 pipe['default_tokenizer'].setMaxLength(99999) | Info: Set the maximum allowed legth for each token | Currently set to : 99999 >>> pipe['document_assembler'] has settable params: pipe['document_assembler'].setCleanupMode('shrink') | Info: possible values: disabled, inplace, inplace_full, shrink, shrink_full, each, each_full, delete_full | Currently set to : shrink
yake_pipe['yake'].setNKeywords(4)
key_df = yake_pipe.predict(df)
key_df
keywords_classes | keywords_confidences | text | document | title | |
---|---|---|---|---|---|
origin_index | |||||
0 | [update, china, lead, china lead] | [0.579886257648468, 0.579886257648468, 0.57988... | Bitcoin Price Update: Will China Lead us Down? | Bitcoin Price Update: Will China Lead us Down? | Bitcoin Price Update: Will China Lead us Down? |
1 | [price, levels, week, price levels] | [0.579886257648468, 0.579886257648468, 0.57988... | Key Bitcoin Price Levels for Week 51 (15 – 22 ... | Key Bitcoin Price Levels for Week 51 (15 – 22 ... | Key Bitcoin Price Levels for Week 51 (15 – 22 ... |
2 | [bubble, highly flawed, citing highly flawed, ... | [0.28654029965400696, 0.2879781723022461, 0.19... | National Australia Bank, Citing Highly Flawed ... | National Australia Bank, Citing Highly Flawed ... | National Australia Bank, Citing Highly Flawed ... |
3 | [chinese, chinese, ban driven, banking crisis,... | [0.3288547098636627, 0.3288547098636627, 0.293... | Chinese Bitcoin Ban Driven by Chinese Banking... | Chinese Bitcoin Ban Driven by Chinese Banking ... | Chinese Bitcoin Ban Driven by Chinese Banking... |
4 | [update, opened, position, opened position] | [0.579886257648468, 0.579886257648468, 0.26804... | Bitcoin Trade Update: Opened Position | Bitcoin Trade Update: Opened Position | Bitcoin Trade Update: Opened Position |
... | ... | ... | ... | ... | ... |
1995 | [operations, satoshi resumes, resumes operatio... | [0.26804494857788086, 0.5066323280334473, 0.18... | Bitcoin Bill Pay Company Living Room of Satosh... | Bitcoin Bill Pay Company Living Room of Satosh... | Bitcoin Bill Pay Company Living Room of Satosh... |
1996 | [nydfs, period, comment period, regulation com... | [0.45423248410224915, 0.26804494857788086, 0.1... | NYDFS Extends BitLicense Bitcoin Regulation Co... | NYDFS Extends BitLicense Bitcoin Regulation Co... | NYDFS Extends BitLicense Bitcoin Regulation Co... |
1997 | [proof, solvency, audit, solvency audit] | [0.579886257648468, 0.579886257648468, 0.26804... | Bitfinex Passes Stefan Thomas’s Proof Of Solve... | Bitfinex Passes Stefan Thomas’s Proof Of Solve... | Bitfinex Passes Stefan Thomas’s Proof Of Solve... |
1998 | [platform, support, growth, support growth] | [0.579886257648468, 0.579886257648468, 0.26804... | Cryptocurrency Exchange Platform AlphaPoint Pa... | Cryptocurrency Exchange Platform AlphaPoint Pa... | Cryptocurrency Exchange Platform AlphaPoint Pa... |
1999 | [sell bitcoin, bitcoin fast, try coinrnr, sell... | [0.28912684321403503, 0.28912684321403503, 0.2... | Want to Buy And Sell Bitcoin Fast and Secure? ... | Want to Buy And Sell Bitcoin Fast and Secure? ... | Want to Buy And Sell Bitcoin Fast and Secure? ... |
2000 rows × 5 columns
key_df.explode('keywords_classes').keywords_classes.value_counts()[0:100].plot.bar(title='Top 100 Keywords in Stack Overflow Questions', figsize=(20,12))
<matplotlib.axes._subplots.AxesSubplot at 0x7f0f7f384588>
yake_pipe['yake'].setMinNGrams(2)
yake_pipe['yake'].setMaxNGrams(4)
key_df = yake_pipe.predict(df)
key_df
keywords_classes | keywords_confidences | text | document | title | |
---|---|---|---|---|---|
origin_index | |||||
0 | [bitcoin price, china lead, lead us, china lea... | [0.7475647330284119, 0.37749895453453064, 0.56... | Bitcoin Price Update: Will China Lead us Down? | Bitcoin Price Update: Will China Lead us Down? | Bitcoin Price Update: Will China Lead us Down? |
1 | [key bitcoin, price levels, bitcoin price leve... | [0.7475647330284119, 0.4625011086463928, 0.814... | Key Bitcoin Price Levels for Week 51 (15 – 22 ... | Key Bitcoin Price Levels for Week 51 (15 – 22 ... | Key Bitcoin Price Levels for Week 51 (15 – 22 ... |
2 | [highly flawed, citing highly flawed, highly f... | [0.23089197278022766, 0.1354624480009079, 0.13... | National Australia Bank, Citing Highly Flawed ... | National Australia Bank, Citing Highly Flawed ... | National Australia Bank, Citing Highly Flawed ... |
3 | [ban driven, banking crisis, bitcoin ban drive... | [0.27564486861228943, 0.24952805042266846, 0.3... | Chinese Bitcoin Ban Driven by Chinese Banking... | Chinese Bitcoin Ban Driven by Chinese Banking ... | Chinese Bitcoin Ban Driven by Chinese Banking... |
4 | [bitcoin trade, trade update, opened position,... | [0.7475647330284119, 0.8779388070106506, 0.174... | Bitcoin Trade Update: Opened Position | Bitcoin Trade Update: Opened Position | Bitcoin Trade Update: Opened Position |
... | ... | ... | ... | ... | ... |
1995 | [resumes operations, company living room, sato... | [0.17407101392745972, 0.3086637258529663, 0.13... | Bitcoin Bill Pay Company Living Room of Satosh... | Bitcoin Bill Pay Company Living Room of Satosh... | Bitcoin Bill Pay Company Living Room of Satosh... |
1996 | [comment period, bitcoin regulation comment, r... | [0.17407101392745972, 0.3368493616580963, 0.13... | NYDFS Extends BitLicense Bitcoin Regulation Co... | NYDFS Extends BitLicense Bitcoin Regulation Co... | NYDFS Extends BitLicense Bitcoin Regulation Co... |
1997 | [bitfinex passes, passes stefan, solvency audi... | [0.7475647330284119, 0.8779388070106506, 0.174... | Bitfinex Passes Stefan Thomas’s Proof Of Solve... | Bitfinex Passes Stefan Thomas’s Proof Of Solve... | Bitfinex Passes Stefan Thomas’s Proof Of Solve... |
1998 | [alphapoint partners, support growth, platform... | [0.5619156360626221, 0.17407101392745972, 0.63... | Cryptocurrency Exchange Platform AlphaPoint Pa... | Cryptocurrency Exchange Platform AlphaPoint Pa... | Cryptocurrency Exchange Platform AlphaPoint Pa... |
1999 | [sell bitcoin, bitcoin fast, try coinrnr, sell... | [0.23188748955726624, 0.23188748955726624, 0.2... | Want to Buy And Sell Bitcoin Fast and Secure? ... | Want to Buy And Sell Bitcoin Fast and Secure? ... | Want to Buy And Sell Bitcoin Fast and Secure? ... |
2000 rows × 5 columns
key_df.explode('keywords_classes').keywords_classes.value_counts()[0:100].plot.bar(title='Top 100 Keywords in Stack Overflow Questions', figsize=(20,12))
<matplotlib.axes._subplots.AxesSubplot at 0x7f0f7fcbb390>