# Notebook from dongxulee/lifeCycle
Path: 20200823/Experiment3/simulation.ipynb

### Simulation Part _____no_output_____

%pylab inline
from scipy.interpolate import interpn
from helpFunctions import surfacePlot
import numpy as np
from multiprocessing import Pool
from functools import partial
import warnings
import math
warnings.filterwarnings("ignore")
np.printoptions(precision=2)Populating the interactive namespace from numpy and matplotlib
# time line
T_min = 0
T_max = 70
T_R = 45
# parameter used to calculate the housing consumption
kappa = 0.3
# depreciation parameter
delta = 0.025
# housing parameter
chi = 0.3
# All the money amount are denoted in thousand dollars
earningShock = [0.8,1.2]
# Define transition matrix of economical states
# GOOD -> GOOD 0.8, BAD -> BAD 0.6
Ps = np.array([[0.6, 0.4],[0.2, 0.8]])
# current risk free interest rate
# r_b = np.array([0.01 ,0.03])
r_b = np.array([0.03 ,0.05])
# stock return depends on current and future econ states
# r_k = np.array([[-0.2, 0.15],[-0.15, 0.2]])
r_k = np.array([[-0.15, 0.20],[-0.15, 0.20]])
# expected return on stock market
# r_bar = 0.0667
r_bar = 0.02
# probability of survival
Pa = np.load("prob.npy")
# deterministic income
detEarning = np.load("detEarning.npy")
# probability of employment transition Pe[s, s_next, e, e_next]
Pe = np.array([[[[0.3, 0.7], [0.1, 0.9]], [[0.25, 0.75], [0.05, 0.95]]],
               [[[0.25, 0.75], [0.05, 0.95]], [[0.2, 0.8], [0.01, 0.99]]]])
# tax rate before and after retirement
tau_L = 0.2
tau_R = 0.1

# constant state variables: Purchase value 250k, down payment 50k, mortgage 200k, interest rate 3.6%,
# 55 payment period, 8.4k per period. One housing unit is roughly 1 square feet. Housing price 0.25k/sf

# some variables associate with 401k amount
Nt = [np.sum(Pa[t:]) for t in range(T_max-T_min)]
Dt = [np.ceil(((1+r_bar)**N - 1)/(r_bar*(1+r_bar)**N)) for N in Nt]
# 401k contribution
yi = 0.05
# mortgate rate
rh = 0.036
D = [((1+rh)**N - 1)/(rh*(1+rh)**N) for N in range(T_max-T_min)]
# owning a house
O_lag = 1
# housing unit
H = 1000
# housing price constant
pt = 250/1000
# MS starting mortgate amount is set to 80 percent mortgage
MS = H * 0.8 * pt
# mortgate payment
m = MS / D[-1]
# Mt is the Mortgage balance at time t
Mt = [MS]
for t in range(T_max - T_min -1):
    Mt.append(Mt[-1]*(1+rh) - m)

# wealth discretization
ws = np.array([10,25,50,75,100,125,150,175,200,250,500,750,1000,1500,3000])
w_grid_size = len(ws)
# 401k amount discretization
ns = np.array([1, 5, 10, 15, 25, 40, 65, 100, 150, 300, 400,1000,2000])
n_grid_size = len(ns)
# Improvement amount
gs = np.array([0,25,50,75,100,200,500,800])
g_grid_size = len(gs)
points = (ws,ns,gs)_____no_output_____import quantecon as qe
mc = qe.MarkovChain(Ps)

#Vgrid = np.load("Vgrid_i.npy")
cgrid = np.load("cgrid_i.npy")
bgrid = np.load("bgrid_i.npy")
kgrid = np.load("kgrid_i.npy")
igrid = np.load("igrid_i.npy")
qgrid = np.load("qgrid_i.npy")

def action(t, x):
    w, n, g_lag, e, s = x
    c = interpn(points, cgrid[:,:,:,e,s,t], x[:3], method = "nearest", bounds_error = False, fill_value = None)[0]
    b = interpn(points, bgrid[:,:,:,e,s,t], x[:3], method = "nearest", bounds_error = False, fill_value = None)[0]
    k = interpn(points, kgrid[:,:,:,e,s,t], x[:3], method = "nearest", bounds_error = False, fill_value = None)[0]
    i = interpn(points, igrid[:,:,:,e,s,t], x[:3], method = "nearest", bounds_error = False, fill_value = None)[0]
    q = interpn(points, qgrid[:,:,:,e,s,t], x[:3], method = "nearest", bounds_error = False, fill_value = None)[0]
    return (c,b,k,i,q)

#Define the earning function, which applies for both employment and unemployment, good econ state and bad econ state
def y(t, x):
    w, n, g_lag, e, s = x
    if t <= T_R:
        welfare = 5
        return detEarning[t] * earningShock[int(s)] * e + (1-e) * welfare
    else:
        return detEarning[t]

#Define the evolution of the amount in 401k account
def gn(t, n, x, s_next):
    w, n, g_lag, e, s = x
    if t <= T_R and e == 1:
        # if the person is employed, then 5 percent of his income goes into 401k
        # i = 0.05
        n_cur = n + y(t, x) * yi
    elif t <= T_R and e == 0:
        # if the perons is unemployed, then n does not change
        n_cur = n
    else:
        # t > T_R, n/discounting amount will be withdraw from the 401k
        n_cur = n - n/Dt[t]
    return (1+r_k[int(s), s_next])*n_cur

def transition(x, a, t, s_next):
    '''
    Input: state and action and time
    Output: possible future states and corresponding probability
    '''
    w, n, g_lag, e, s = x
    c,b,k,i,q = a
    # variables used to collect possible states and probabilities
    x_next = []
    prob_next = []
    if q == 1:
        g = (1-delta)*g_lag + i
    else:
        g = (1-delta)*g_lag

    w_next =  b*(1+r_b[int(s)]) + k*(1+r_k[int(s), s_next])
    n_next = gn(t, n, x, s_next)
    if t >= T_R:
        e_next = 0
        return [w_next, n_next, g, e_next, s_next]
    else:
        for e_next in [0,1]:
            x_next.append([w_next, n_next, g, e_next, s_next])
            prob_next.append(Pe[int(s),s_next,int(e),e_next])
    return x_next[np.random.choice(2, 1, p = prob_next)[0]]_____no_output_____'''
    Start with:
    w = 20
    n  = 0
    g_lag = 0
    e = 1
    s = 1
    1000 agents for 1 economy, 100 economies.

    use numpy array to contain the variable change:

    wealth, rFund, hImprov, employment, sState, salary, consumption, hConsumption, bond, stock, improve, hPercentage, life. Shape: (T_max-T_min, numAgents*numEcons)
'''
x0 = [20, 0, 0, 1, 1]

numAgents = 1000
numEcons = 500_____no_output_____import random as rd
EconStates = [mc.simulate(ts_length=T_max - T_min, init=0) for _ in range(numEcons)]
def simulation(i):
    track = np.zeros((T_max - T_min,13))
    econState = EconStates[i//numAgents]
    alive = True
    x = x0
    for t in range(len(econState)-1):
        if rd.random() > Pa[t]:
            alive = False
        if alive:
            track[t, 0] = x[0]
            track[t, 1] = x[1]
            track[t, 2] = x[2]
            track[t, 3] = x[3]
            track[t, 4] = x[4]
            track[t, 5] = y(t,x)
            a = action(t, x)
            track[t, 6] = a[0]
            track[t, 8] = a[1]
            track[t, 9] = a[2]
            track[t, 10] = a[3]
            track[t, 11] = a[4]
            track[t, 12] = 1
            # calculate housing consumption
            if a[4] == 1:
                h = H + (1-delta)*x[2] + a[3]
                Vh = (1+kappa)*h
            else:
                h = H + (1-delta)*x[2]
                Vh = (1-kappa)*(h-(1-a[4])*H)
            track[t, 7] = Vh
            s_next = econState[t+1]
            x = transition(x, a, t, s_next)
    return track_____no_output_____%%time
pool = Pool()
agentsHistory = pool.map(simulation, list(range(numAgents*numEcons)))
pool.close()CPU times: user 5.18 s, sys: 5.12 s, total: 10.3 s
Wall time: 12min 41s
len(agentsHistory)_____no_output_____np.save("agents", np.array(agentsHistory))_____no_output_____agents = np.load("agents.npy")_____no_output_____wealth = np.zeros((T_max-T_min, numAgents*numEcons))
rFund = np.zeros((T_max-T_min, numAgents*numEcons))
hImprove = np.zeros((T_max-T_min, numAgents*numEcons))
employment = np.zeros((T_max-T_min, numAgents*numEcons))
sState = np.zeros((T_max-T_min, numAgents*numEcons))
salary = np.zeros((T_max-T_min, numAgents*numEcons))
consumption = np.zeros((T_max-T_min, numAgents*numEcons))
hConsumption = np.zeros((T_max-T_min, numAgents*numEcons))
bond = np.zeros((T_max-T_min, numAgents*numEcons))
stock = np.zeros((T_max-T_min, numAgents*numEcons))
improve = np.zeros((T_max-T_min, numAgents*numEcons))
hPer = np.zeros((T_max-T_min, numAgents*numEcons))
life = np.zeros((T_max-T_min, numAgents*numEcons))_____no_output_____def separateAttributes(agents):
    for i in range(numAgents*numEcons):
        wealth[:,i] = agents[i][:,0]
        rFund[:,i] = agents[i][:,1]
        hImprove[:,i] = agents[i][:,2]
        employment[:,i] = agents[i][:,3]
        sState[:,i] = agents[i][:,4]
        salary[:,i] = agents[i][:,5]
        consumption[:,i] = agents[i][:,6]
        hConsumption[:,i] = agents[i][:,7]
        bond[:,i] = agents[i][:,8]
        stock[:,i] = agents[i][:,9]
        improve[:,i] = agents[i][:,10]
        hPer[:,i] = agents[i][:,11]
        life[:,i] = agents[i][:,12]
separateAttributes(agents)_____no_output_____np.save("wealth", wealth)
np.save("rFund", rFund)
np.save("hImprov", hImprove)
np.save("employment", employment)
np.save("sState", sState)
np.save("salary", salary)
np.save("consumption", consumption)
np.save("hConsumption", hConsumption)
np.save("bond", bond)
np.save("stock", stock)
np.save("improve", improve)
np.save("hPer", hPer)
np.save("life", life)_____no_output_____

### Summary Plot_____no_output_____

wealth = np.load("wealth.npy")
rFund = np.load("rFund.npy")
hImprove = np.load("hImprov.npy")
employment = np.load("employment.npy")
sState = np.load("sState.npy")
salary = np.load("salary.npy")
consumption = np.load("consumption.npy")
hConsumption = np.load("hConsumption.npy")
bond = np.load("bond.npy")
stock = np.load("stock.npy")
improve = np.load("improve.npy")
hPer = np.load("hPer.npy")
life = np.load("life.npy")_____no_output_____# Population during the entire simulation period
plt.plot(np.mean(life, axis = 1))_____no_output_____def quantileForPeopleWholive(attribute, quantiles = [0.25, 0.5, 0.75]):
    qList = []
    for i in range(69):
        if len(np.where(life[i,:] == 1)[0]) == 0:
            qList.append(np.array([0] * len(quantiles)))
        else:
            qList.append(np.quantile(attribute[i, np.where(life[i,:] == 1)], q = quantiles))
    return np.array(qList)

def meanForPeopleWholive(attribute):
    means = []
    for i in range(69):
        if len(np.where(life[i,:] == 1)[0]) == 0:
            means.append(np.array([0]))
        else:
            means.append(np.mean(attribute[i, np.where(life[i,:] == 1)]))
    return np.array(means)_____no_output_____# plot the 0.25, 0.5, 0.75 quantiles of hConsumption
plt.plot(quantileForPeopleWholive(hConsumption))_____no_output_____# plot the 0.25, 0.5, 0.75 quantiles of wealth
plt.plot(quantileForPeopleWholive(wealth))_____no_output_____# plot the 0.25, 0.5, 0.75 quantiles of 401k
plt.plot(quantileForPeopleWholive(rFund))_____no_output_____# plot the 0.25, 0.5, 0.75 quantiles of consumption
plt.plot(quantileForPeopleWholive(consumption))_____no_output_____# plot the 0.25, 0.5, 0.75 quantiles of bond holding
plt.plot(quantileForPeopleWholive(bond))_____no_output_____# plot the 0.25, 0.5, 0.75 quantiles of stock holding
plt.plot(quantileForPeopleWholive(stock))_____no_output_____# plot the 0.25, 0.5, 0.75 quantiles of q (not renting out ratio)
plt.plot(quantileForPeopleWholive(hPer))_____no_output_____# plot the 0.25, 0.5, 0.75 quantiles of wealth
plt.figure(figsize = [14,8])
plt.plot(meanForPeopleWholive(wealth), label = "wealth")
plt.plot(meanForPeopleWholive(consumption), label = "Consumption")
plt.plot(meanForPeopleWholive(bond), label = "Bond")
plt.plot(meanForPeopleWholive(stock), label = "Stock")
plt.legend()_____no_output_____plt.plot(meanForPeopleWholive(rFund), label = "rFund")_____no_output_____


# Notebook from jcm-co/homework-CryptoTales
Path: Starter_Code/crypto_sentiment.ipynb

# Unit 12 - Tales from the Crypto

---
_____no_output_____## 1. Sentiment Analysis

Use the [newsapi](https://newsapi.org/) to pull the latest news articles for Bitcoin and Ethereum and create a DataFrame of sentiment scores for each coin.

Use descriptive statistics to answer the following questions:
1. Which coin had the highest mean positive score?
2. Which coin had the highest negative score?
3. Which coin had the highest positive score?_____no_output_____

# Initial imports
import os
import pandas as pd
from dotenv import load_dotenv
load_dotenv()
import nltk as nltk
nltk.download('vader_lexicon')
from nltk.sentiment.vader import SentimentIntensityAnalyzer
analyzer = SentimentIntensityAnalyzer()

%matplotlib inline[nltk_data] Downloading package vader_lexicon to
[nltk_data]     /Users/jcmignon/nltk_data...
[nltk_data]   Package vader_lexicon is already up-to-date!
# Read your api key environment variable
api_key = os.getenv("NEWS_API_KEY")_____no_output_____# Create a newsapi client
from newsapi import NewsApiClient
newsapi = NewsApiClient(api_key=api_key)_____no_output_____# Fetch the Bitcoin news articles
btc_news1 = pd.DataFrame(newsapi.get_everything(q="bitcoin", language ="en",sort_by='relevancy',page = 1)['articles'])
btc_news2 = pd.DataFrame(newsapi.get_everything(q="bitcoin", language ="en",sort_by='relevancy',page = 2)['articles'])
btc_news3 = pd.DataFrame(newsapi.get_everything(q="bitcoin", language ="en",sort_by='relevancy',page = 3)['articles'])
btc_news4 = pd.DataFrame(newsapi.get_everything(q="bitcoin", language ="en",sort_by='relevancy',page = 4)['articles'])
btc_news5 = pd.DataFrame(newsapi.get_everything(q="bitcoin", language ="en",sort_by='relevancy',page = 5)['articles'])

btc_news = pd.concat([btc_news1,btc_news2,btc_news3,btc_news4,btc_news5])
btc_news_____no_output_____# Fetch the Ethereum news articles
eth_news = newsapi.get_everything(q="ethereum", language ="en",sort_by='relevancy')

eth_news1 = pd.DataFrame(newsapi.get_everything(q="ethereum", language ="en",sort_by='relevancy',page = 1)['articles'])
eth_news2 = pd.DataFrame(newsapi.get_everything(q="ethereum", language ="en",sort_by='relevancy',page = 2)['articles'])
eth_news3 = pd.DataFrame(newsapi.get_everything(q="ethereum", language ="en",sort_by='relevancy',page = 3)['articles'])
eth_news4 = pd.DataFrame(newsapi.get_everything(q="ethereum", language ="en",sort_by='relevancy',page = 4)['articles'])
eth_news5 = pd.DataFrame(newsapi.get_everything(q="ethereum", language ="en",sort_by='relevancy',page = 5)['articles'])

eth_news = pd.concat([eth_news1,eth_news2,eth_news3,eth_news4,eth_news5])
eth_news.head()_____no_output_____# Create the Bitcoin sentiment scores DataFrame
btc_sentiment = []

for content in btc_news['content']:
    sentiment = analyzer.polarity_scores(content)
    compound = sentiment["compound"]
    pos = sentiment["pos"]
    neu = sentiment["neu"]
    neg = sentiment["neg"]

    btc_sentiment.append({
            "text": content,
            "compound": compound,
            "positive": pos,
            "negative": neg,
            "neutral": neu
        })

# Create DataFrame
btc_df = pd.DataFrame(btc_sentiment)

# Reorder DataFrame columns
cols = ["text", "compound", "positive", "negative", "neutral"]
btc_df = btc_df[cols]

btc_df.head()_____no_output_____# Create the Bitcoin sentiment scores DataFrame
eth_sentiment = []

for content in eth_news['content']:
    sentiment = analyzer.polarity_scores(content)
    compound = sentiment["compound"]
    pos = sentiment["pos"]
    neu = sentiment["neu"]
    neg = sentiment["neg"]

    eth_sentiment.append({
            "text": content,
            "compound": compound,
            "positive": pos,
            "negative": neg,
            "neutral": neu
        })

# Create DataFrame
eth_df = pd.DataFrame(eth_sentiment)

# Reorder DataFrame columns
cols = ["text", "compound", "positive", "negative", "neutral"]
eth_df = eth_df[cols]

eth_df.head()_____no_output_____# Describe the Bitcoin Sentiment
btc_df.describe()_____no_output_____# Describe the Ethereum Sentiment
eth_df.describe()_____no_output_____

### Questions:

Q: Which coin had the highest mean positive score?

*__A: Etheruem had the highest mean positive score, 5.49% vs 4.68% for Bitcoin.__*

Q: Which coin had the highest compound score?

*__A: Ethereum had the highest mean compound score (12.84% vs 5.92% respectively), as well as the highest compound score for an individual article (84.81% vs 84.02% respectively).__*

Q. Which coin had the highest positive score?

*__A: Ethereum had the highest positive score (29% vs 28.2% for ETH)__*_____no_output_____## 2. Natural Language Processing
---
###   Tokenizer

In this section, you will use NLTK and Python to tokenize the text for each coin. Be sure to:
1. Lowercase each word.
2. Remove Punctuation.
3. Remove Stopwords._____no_output_____

from nltk.tokenize import word_tokenize, sent_tokenize
from nltk.corpus import reuters, stopwords
from nltk.stem import WordNetLemmatizer, PorterStemmer
from string import punctuation
import re_____no_output_____btc_string=" ".join(btc_news['content'].astype(str))_____no_output_____# Create a list of stopwords
sentence = sent_tokenize(btc_string)
words = word_tokenize(btc_string)
sw = set(stopwords.words('english'))
first_result = [word.lower() for word in words if word.lower() not in sw]

# unsure if the list has to be expanded
# Expand list with char reuters_____no_output_____# Instantiate the lemmatizer
lemmatizer = WordNetLemmatizer()_____no_output_____# Complete the tokenizer function
def tokenizer(text):
    """Tokenizes text."""

    # Remove the punctuation from text
    regex = re.compile("[^a-zA-Z ]")
    re_clean = regex.sub('', text)

    # Create a tokenized list of the words
    words = word_tokenize(re_clean)

    # Define the stop words
    sw = stopwords.words('english')
    # Additional words as they appear in the top 10 most common words and add little to no value
    sw_addon = {'char', 'reuters'}

    # Lemmatize words into root words
    lem = [lemmatizer.lemmatize(word) for word in words]

    # Convert the words to lowercase
    output = [word.lower() for word in lem if word.lower() not in sw]

    # unsure how to add the custom list - .union(sw_addon) - to be pasted behind sw. in the previous line, error: union is not recognized

    return output_____no_output_____# Create a new tokens column for Bitcoin
btc_token = btc_news['content'].apply(tokenizer)
btc_df['token'] = btc_token.values
btc_df.head()_____no_output_____# Create a new tokens column for Ethereum
eth_token = eth_news['content'].apply(tokenizer)
eth_df['token'] = eth_token.values
eth_df.head()_____no_output_____

---_____no_output_____### NGrams and Frequency Analysis

In this section you will look at the ngrams and word frequency for each coin.

1. Use NLTK to produce the n-grams for N = 2.
2. List the top 10 words for each coin. _____no_output_____

from collections import Counter
from nltk import ngrams_____no_output_____# Create btc_string of all tokenized words per article
btc_string = " ".join(btc_df['token'].astype(str))
# Tokenize btc_string to ensure you have one big string
btc_string_processed = tokenizer(btc_string)_____no_output_____# Generate the Bitcoin N-grams where N=2
btc_counts = Counter(ngrams(btc_string_processed, n=2))
print(dict(btc_counts)){('el', 'salvador'): 21, ('salvador', 'president'): 2, ('president', 'nayib'): 7, ('nayib', 'bukele'): 6, ('bukele', 'ha'): 1, ('ha', 'made'): 1, ('made', 'good'): 1, ('good', 'promise'): 1, ('promise', 'adopt'): 1, ('adopt', 'bitcoin'): 3, ('bitcoin', 'legal'): 12, ('legal', 'tender'): 11, ('tender', 'official'): 1, ('official', 'central'): 1, ('central', 'american'): 3, ('american', 'country'): 1, ('country', 'congress'): 1, ('congress', 'voted'): 1, ('voted', 'accept'): 1, ('accept', 'cryptocurrency'): 1, ('cryptocurrency', 'majori'): 1, ('majori', 'char'): 1, ('char', 'el'): 5, ('salvador', 'ha'): 6, ('ha', 'become'): 6, ('become', 'first'): 5, ('first', 'country'): 6, ('country', 'world'): 6, ('world', 'recognize'): 1, ('recognize', 'cryptocurrency'): 1, ('cryptocurrency', 'bitcoin'): 4, ('legal', 'currency'): 1, ('currency', 'according'): 1, ('according', 'president'): 1, ('bukele', 'tweet'): 1, ('tweet', 'wednesday'): 1, ('wednesday', 'citizen'): 1, ('citizen', 'able'): 1, ('able', 'char'): 1, ('char', 'clean'): 1, ('clean', 'energy'): 2, ('energy', 'seemselon'): 1, ('seemselon', 'musk'): 1, ('musk', 'tesla'): 1, ('tesla', 'caused'): 1, ('caused', 'ripple'): 1, ('ripple', 'cryptocurrency'): 1, ('cryptocurrency', 'market'): 1, ('market', 'past'): 1, ('past', 'month'): 1, ('month', 'first'): 1, ('first', 'announcing'): 1, ('announcing', 'tesla'): 1, ('tesla', 'bought'): 1, ('bought', 'billion'): 1, ('billion', 'worth'): 1, ('worth', 'bitcoi'): 1, ('bitcoi', 'char'): 3, ('char', 'image'): 1, ('image', 'captionthe'): 1, ('captionthe', 'move'): 1, ('move', 'mean'): 1, ('mean', 'bitcoin'): 1, ('bitcoin', 'accepted'): 1, ('accepted', 'everywhere'): 1, ('everywhere', 'good'): 1, ('good', 'service'): 1, ('service', 'alongside'): 1, ('alongside', 'u'): 2, ('u', 'dollarel'): 1, ('dollarel', 'salvador'): 1, ('world', 'officially'): 1, ('officially', 'classify'): 1, ('classify', 'bitcoin'): 2, ('bitcoin', 'char'): 1, ('char', 'several'): 1, ('several', 'crypto'): 1, ('crypto', 'fan'): 1, ('fan', 'descended'): 1, ('descended', 'miami'): 1, ('miami', 'florida'): 1, ('florida', 'last'): 1, ('last', 'weekend'): 1, ('weekend', 'largest'): 1, ('largest', 'bitcoin'): 1, ('bitcoin', 'conference'): 1, ('conference', 'history'): 1, ('history', 'saying'): 1, ('saying', 'theyve'): 1, ('theyve', 'tested'): 1, ('tested', 'positive'): 1, ('positive', 'covid'): 1, ('covid', 'larry'): 1, ('larry', 'cermak'): 1, ('cermak', 'research'): 1, ('research', 'director'): 1, ('director', 'char'): 1, ('char', 'hello'): 2, ('hello', 'friend'): 1, ('friend', 'welcome'): 1, ('welcome', 'back'): 2, ('back', 'week'): 1, ('week', 'reviewlast'): 1, ('reviewlast', 'week'): 1, ('week', 'wrote'): 1, ('wrote', 'tech'): 1, ('tech', 'taking'): 1, ('taking', 'disney'): 1, ('disney', 'week'): 1, ('week', 'im'): 1, ('im', 'talking'): 1, ('talking', 'search'): 1, ('search', 'new'): 1, ('new', 'crypto'): 1, ('crypto', 'messiahif'): 1, ('messiahif', 'youre'): 1, ('youre', 'reading'): 1, ('reading', 'tec'): 1, ('tec', 'char'): 1, ('char', 'maryann'): 1, ('maryann', 'russonbusiness'): 1, ('russonbusiness', 'reporter'): 1, ('reporter', 'bbc'): 1, ('bbc', 'newsimage'): 1, ('newsimage', 'copyrightgetty'): 1, ('copyrightgetty', 'imagesformer'): 1, ('imagesformer', 'u'): 1, ('u', 'president'): 1, ('president', 'donald'): 1, ('donald', 'trump'): 1, ('trump', 'ha'): 1, ('ha', 'told'): 1, ('told', 'fox'): 1, ('fox', 'business'): 1, ('business', 'see'): 1, ('see', 'bitcoin'): 1, ('bitcoin', 'scam'): 1, ('scam', 'affecting'): 1, ('affecting', 'value'): 1, ('value', 'u'): 1, ('u', 'dolla'): 1, ('dolla', 'char'): 1, ('char', 'san'): 2, ('san', 'salvador'): 3, ('salvador', 'june'): 5, ('june', 'reuters'): 23, ('reuters', 'el'): 7, ('salvador', 'replace'): 2, ('replace', 'u'): 2, ('u', 'dollar'): 3, ('dollar', 'bitcoin'): 2, ('tender', 'finance'): 2, ('finance', 'minister'): 2, ('minister', 'alejandro'): 2, ('alejandro', 'zelaya'): 2, ('zelaya', 'said'): 2, ('said', 'wednesday'): 3, ('wednesday', 'central'): 2, ('american', 'nation'): 1, ('nation', 'char'): 1, ('char', 'london'): 4, ('london', 'june'): 4, ('salvador', 'determined'): 2, ('determined', 'push'): 2, ('push', 'ahead'): 2, ('ahead', 'making'): 2, ('making', 'bitcoin'): 3, ('tender', 'process'): 2, ('process', 'bring'): 2, ('bring', 'small'): 2, ('small', 'risk'): 2, ('risk', 'prove'): 2, ('prove', 'leap'): 2, ('leap', 'forward'): 2, ('forward', 'humanity'): 2, ('humanity', 'country'): 2, ('country', 'pr'): 1, ('pr', 'char'): 1, ('country', 'char'): 1, ('char', 'representation'): 11, ('representation', 'virtual'): 7, ('virtual', 'currency'): 5, ('currency', 'bitcoin'): 4, ('bitcoin', 'stand'): 1, ('stand', 'motherboard'): 1, ('motherboard', 'picture'): 1, ('picture', 'illustration'): 6, ('illustration', 'taken'): 8, ('taken', 'may'): 1, ('may', 'reutersdado'): 1, ('reutersdado', 'ruvicillustrationfile'): 1, ('ruvicillustrationfile', 'photomicrostrategy'): 1, ('photomicrostrategy', 'inc'): 1, ('inc', 'mstro'): 1, ('mstro', 'major'): 1, ('major', 'b'): 1, ('b', 'char'): 2, ('char', 'reuters'): 15, ('reuters', 'staffsan'): 1, ('staffsan', 'salvador'): 1, ('salvador', 'reuters'): 1, ('american', 'char'): 1, ('char', 'colonial'): 1, ('colonial', 'pipeline'): 2, ('pipeline', 'biggest'): 1, ('biggest', 'recent'): 1, ('recent', 'ransomware'): 1, ('ransomware', 'attack'): 1, ('attack', 'targeted'): 1, ('targeted', 'jbs'): 1, ('jbs', 'meat'): 1, ('meat', 'supplier'): 2, ('supplier', 'thats'): 1, ('thats', 'responsible'): 1, ('responsible', 'one'): 1, ('one', 'quarter'): 1, ('quarter', 'meat'): 1, ('meat', 'processing'): 1, ('processing', 'u'): 1, ('u', 'late'): 1, ('late', 'last'): 1, ('last', 'week'): 3, ('week', 'company'): 1, ('company', 'char'): 1, ('hello', 'welcome'): 1, ('back', 'toequity'): 1, ('toequity', 'techcrunchs'): 1, ('techcrunchs', 'venture'): 1, ('venture', 'capitalfocused'): 1, ('capitalfocused', 'podcast'): 1, ('podcast', 'unpack'): 1, ('unpack', 'number'): 1, ('number', 'behind'): 1, ('behind', 'headlinesthis'): 1, ('headlinesthis', 'equity'): 1, ('equity', 'monday'): 1, ('monday', 'morning'): 1, ('morning', 'coffee'): 1, ('coffee', 'chat'): 1, ('chat', 'ab'): 1, ('ab', 'char'): 1, ('char', 'story'): 1, ('story', 'originally'): 1, ('originally', 'appeared'): 1, ('appeared', 'marketbeatwhen'): 1, ('marketbeatwhen', 'meme'): 1, ('meme', 'coin'): 1, ('coin', 'surged'): 1, ('surged', 'earlier'): 1, ('earlier', 'year'): 1, ('year', 'remember'): 1, ('remember', 'dogecoin'): 1, ('dogecoin', 'mania'): 1, ('mania', 'mightve'): 1, ('mightve', 'easy'): 1, ('easy', 'dump'): 1, ('dump', 'everything'): 1, ('everything', 'owned'): 1, ('owned', 'stock'): 1, ('stock', 'bond'): 1, ('bond', 'gold'): 1, ('gold', 'crypto'): 1, ('crypto', 'char'): 1, ('reuters', 'staffadds'): 2, ('staffadds', 'context'): 1, ('context', 'backgroundjune'): 1, ('backgroundjune', 'reuters'): 1, ('reuters', 'bitcoin'): 17, ('bitcoin', 'surged'): 4, ('surged', 'sunday'): 1, ('sunday', 'adding'): 5, ('adding', 'previous'): 6, ('previous', 'closebitcoin'): 12, ('closebitcoin', 'world'): 12, ('world', 'biggest'): 12, ('biggest', 'bestknown'): 12, ('bestknown', 'cryp'): 1, ('cryp', 'char'): 1, ('bitcoin', 'seen'): 6, ('seen', 'front'): 4, ('front', 'stock'): 3, ('stock', 'graph'): 3, ('graph', 'illustration'): 3, ('taken', 'march'): 2, ('march', 'reutersdado'): 2, ('reutersdado', 'ruvicillustrationlondon'): 1, ('ruvicillustrationlondon', 'june'): 1, ('reuters', 'youre'): 1, ('youre', 'bitcoi'): 1, ('char', 'tokyo'): 1, ('tokyo', 'june'): 1, ('reuters', 'cryptocurrencies'): 1, ('cryptocurrencies', 'tumbled'): 1, ('tumbled', 'monday'): 3, ('monday', 'china'): 1, ('china', 'crackdown'): 2, ('crackdown', 'bitcoin'): 1, ('bitcoin', 'mining'): 3, ('mining', 'expanded'): 1, ('expanded', 'province'): 1, ('province', 'sichuan'): 1, ('sichuan', 'read'): 1, ('read', 'bitcoin'): 1, ('bitcoin', 'fell'): 2, ('fell', 'low'): 1, ('low', 'first'): 1, ('first', 'char'): 1, ('char', 'bitcoin'): 10, ('surged', 'wednesday'): 1, ('wednesday', 'adding'): 1, ('bestknown', 'cryptocurrency'): 11, ('cryptocurrency', 'year'): 3, ('year', 'low'): 3, ('low', 'jan'): 1, ('jan', 'char'): 1, ('reuters', 'stafffile'): 3, ('stafffile', 'photo'): 3, ('photo', 'representation'): 2, ('representation', 'bitcoin'): 7, ('bitcoin', 'cryptocurrency'): 7, ('cryptocurrency', 'seen'): 7, ('seen', 'picture'): 5, ('taken', 'june'): 10, ('june', 'reutersedgar'): 9, ('reutersedgar', 'suillustrationreuters'): 1, ('suillustrationreuters', 'bitcoin'): 1, ('bitcoin', 'dropped'): 6, ('dropped', 'char'): 3, ('dropped', 'gmt'): 2, ('gmt', 'saturday'): 1, ('saturday', 'losing'): 1, ('losing', 'previous'): 6, ('cryptocurrency', 'high'): 1, ('high', 'char'): 1, ('char', 'june'): 1, ('bitcoin', 'dipped'): 3, ('dipped', 'gmt'): 3, ('gmt', 'monday'): 2, ('monday', 'losing'): 2, ('cryptocurrency', 'char'): 7, ('reuters', 'staffjune'): 7, ('staffjune', 'reuters'): 7, ('virtual', 'cryptocurrency'): 3, ('reutersedgar', 'suillustrationjune'): 1, ('suillustrationjune', 'reuters'): 1, ('char', 'posted'): 5, ('posted', 'bitcoin'): 4, ('bitcoin', 'tumbled'): 4, ('monday', 'news'): 2, ('news', 'fresh'): 2, ('fresh', 'crackdown'): 2, ('crackdown', 'cryptocurrencys'): 2, ('cryptocurrencys', 'miner'): 2, ('miner', 'china'): 2, ('china', 'reuters'): 1, ('seen', 'illustration'): 6, ('illustration', 'picture'): 6, ('picture', 'taken'): 6, ('reutersedgar', 'suillustrationfile'): 4, ('suillustrationfile', 'photoreuters'): 1, ('photoreuters', 'bitcoin'): 1, ('bitcoin', 'ro'): 1, ('ro', 'char'): 1, ('dropped', 'friday'): 1, ('friday', 'losing'): 3, ('illustration', 'takenmay'): 1, ('takenmay', 'reutersdado'): 1, ('reutersdado', 'ruvicillustrationjuly'): 1, ('ruvicillustrationjuly', 'reuters'): 1, ('bitcoin', 'rose'): 2, ('rose', 'gmt'): 2, ('gmt', 'sunday'): 4, ('surged', 'gmt'): 2, ('low', 'char'): 2, ('char', 'spacex'): 1, ('spacex', 'founder'): 1, ('founder', 'tesla'): 1, ('tesla', 'ceo'): 1, ('ceo', 'elon'): 2, ('elon', 'musk'): 8, ('musk', 'look'): 1, ('look', 'visit'): 1, ('visit', 'construction'): 1, ('construction', 'site'): 1, ('site', 'tesla'): 1, ('tesla', 'gigafactory'): 1, ('gigafactory', 'gruenheide'): 1, ('gruenheide', 'near'): 1, ('near', 'berlin'): 1, ('berlin', 'germany'): 1, ('germany', 'may'): 1, ('may', 'tesla'): 1, ('tesla', 'tslao'): 1, ('tslao', 'bos'): 1, ('bos', 'elon'): 5, ('musk', 'said'): 1, ('said', 'sund'): 1, ('sund', 'char'): 1, ('posted', 'rare'): 1, ('rare', 'pearshaped'): 3, ('pearshaped', 'diamond'): 3, ('diamond', 'expected'): 3, ('expected', 'fetch'): 3, ('fetch', 'million'): 3, ('million', 'bought'): 3, ('bought', 'sothebys'): 1, ('sothebys', 'auction'): 1, ('auction', 'next'): 2, ('next', 'month'): 2, ('month', 'using'): 2, ('using', 'cryptocurrencies'): 2, ('cryptocurrencies', 'another'): 1, ('another', 'first'): 1, ('first', 'emerging'): 1, ('emerging', 'asset'): 1, ('asset', 'r'): 1, ('r', 'char'): 1, ('gmt', 'friday'): 2, ('china', 'julian'): 1, ('julian', 'satterthwaite'): 1, ('satterthwaite', 'report'): 1, ('report', 'june'): 1, ('char', 'video'): 1, ('video', 'broadcast'): 1, ('broadcast', 'bitcoin'): 1, ('bitcoin', 'multiday'): 1, ('multiday', 'conference'): 1, ('conference', 'miami'): 1, ('miami', 'billed'): 1, ('billed', 'biggest'): 1, ('biggest', 'bitcoin'): 1, ('bitcoin', 'event'): 1, ('event', 'history'): 1, ('history', 'president'): 1, ('bukele', 'announced'): 1, ('announced', 'el'): 1, ('salvador', 'partnership'): 1, ('partnership', 'digital'): 1, ('digital', 'wall'): 1, ('wall', 'char'): 1, ('char', 'poster'): 1, ('poster', 'participatinglast'): 1, ('participatinglast', 'week'): 1, ('week', 'el'): 1, ('salvador', 'government'): 1, ('government', 'passed'): 1, ('passed', 'law'): 1, ('law', 'accept'): 1, ('accept', 'bitcoin'): 1, ('tender', 'alongside'): 1, ('dollar', 'country'): 1, ('country', 'receives'): 1, ('receives', 'billion'): 1, ('billion', 'remittance'): 1, ('remittance', 'per'): 1, ('per', 'yearnearl'): 1, ('yearnearl', 'char'): 1, ('bitcoin', 'hit'): 4, ('hit', 'twoweek'): 4, ('twoweek', 'peak'): 3, ('peak', 'shy'): 3, ('shy', 'monday'): 3, ('monday', 'another'): 3, ('another', 'weekend'): 3, ('weekend', 'reacting'): 3, ('reacting', 'tweet'): 3, ('tweet', 'tesla'): 4, ('tesla', 'bos'): 4, ('musk', 'fended'): 3, ('fended', 'criticism'): 3, ('criticism', 'market'): 3, ('market', 'influence'): 3, ('influence', 'said'): 3, ('said', 'te'): 2, ('te', 'char'): 2, ('said', 'tesla'): 1, ('tesla', 'sold'): 1, ('sold', 'b'): 1, ('char', 'gary'): 1, ('gary', 'gensler'): 1, ('gensler', 'head'): 1, ('head', 'security'): 1, ('security', 'exchange'): 1, ('exchange', 'commissionphoto'): 1, ('commissionphoto', 'chip'): 1, ('chip', 'somodevillagetty'): 1, ('somodevillagetty', 'imagesthe'): 1, ('imagesthe', 'u'): 1, ('u', 'market'): 1, ('market', 'regulator'): 1, ('regulator', 'ha'): 1, ('ha', 'warned'): 1, ('warned', 'investor'): 1, ('investor', 'investing'): 1, ('investing', 'fund'): 1, ('fund', 'exposure'): 1, ('exposure', 'bitcoin'): 1, ('bitcoin', 'futu'): 1, ('futu', 'char'): 1, ('reuters', 'staffnew'): 1, ('staffnew', 'york'): 1, ('york', 'june'): 5, ('reuters', 'world'): 1, ('world', 'bank'): 1, ('bank', 'said'): 1, ('wednesday', 'assist'): 1, ('assist', 'el'): 1, ('salvador', 'bitcoin'): 1, ('bitcoin', 'implementation'): 1, ('implementation', 'given'): 1, ('given', 'environmental'): 1, ('environmental', 'transparency'): 1, ('transparency', 'shortcomingswe'): 1, ('shortcomingswe', 'commit'): 1, ('commit', 'char'): 1, ('suillustrationfile', 'photojune'): 3, ('photojune', 'reuters'): 3, ('reuters', 'technical'): 1, ('technical', 'analyst'): 1, ('analyst', 'wat'): 1, ('wat', 'char'): 1, ('reuters', 'staffdubai'): 1, ('staffdubai', 'june'): 1, ('bitcoin', 'fund'): 2, ('fund', 'debuted'): 1, ('debuted', 'nasdaq'): 1, ('nasdaq', 'dubai'): 1, ('dubai', 'wednesday'): 1, ('wednesday', 'becoming'): 1, ('becoming', 'middle'): 1, ('middle', 'east'): 1, ('east', 'first'): 1, ('first', 'listed'): 1, ('listed', 'cryptocurrency'): 1, ('cryptocurrency', 'fundthe'): 1, ('fundthe', 'fund'): 1, ('fund', 'wa'): 1, ('wa', 'listed'): 1, ('listed', 'canadian'): 1, ('canadian', 'char'): 1, ('reutersdado', 'ruvicillustrationdubai'): 1, ('ruvicillustrationdubai', 'june'): 1, ('fund', 'q'): 1, ('q', 'char'): 1, ('char', 'federal'): 1, ('federal', 'agent'): 1, ('agent', 'tracked'): 1, ('tracked', 'seized'): 1, ('seized', 'half'): 1, ('half', 'million'): 1, ('million', 'ransom'): 1, ('ransom', 'paid'): 1, ('paid', 'colonial'): 1, ('pipeline', 'cybercriminal'): 1, ('cybercriminal', 'gang'): 1, ('gang', 'darkside'): 1, ('darkside', 'following'): 1, ('following', 'may'): 1, ('may', 'catastrophic'): 1, ('catastrophic', 'cyberattack'): 1, ('cyberattack', 'u'): 1, ('u', 'justice'): 1, ('justice', 'depa'): 1, ('depa', 'char'): 1, ('char', 'cryptocurrency'): 2, ('cryptocurrency', 'rollercoaster'): 1, ('rollercoaster', 'continues'): 1, ('continues', 'thanks'): 1, ('thanks', 'igettyjordan'): 1, ('igettyjordan', 'mansfieldbitcoin'): 1, ('mansfieldbitcoin', 'popular'): 1, ('popular', 'cryptocurrencies'): 1, ('cryptocurrencies', 'friday'): 1, ('friday', 'cryptic'): 1, ('cryptic', 'tweet'): 1, ('tesla', 'spacex'): 1, ('spacex', 'ceo'): 1, ('musk', 'appea'): 1, ('appea', 'char'): 1, ('char', 'opinion'): 2, ('opinion', 'expressed'): 2, ('expressed', 'entrepreneur'): 2, ('entrepreneur', 'contributor'): 2, ('contributor', 'owncrypto'): 1, ('owncrypto', 'kid'): 1, ('kid', 'camp'): 1, ('camp', 'los'): 1, ('los', 'angeles'): 1, ('angeles', 'offer'): 1, ('offer', 'game'): 1, ('game', 'snack'): 1, ('snack', 'time'): 1, ('time', 'cryptocurrency'): 1, ('cryptocurrency', 'lesson'): 1, ('lesson', 'according'): 1, ('according', 'cnbc'): 1, ('cnbc', 'kid'): 1, ('kid', 'aged'): 1, ('aged', 'five'): 1, ('five', 'learned'): 1, ('learned', 'char'): 1, ('char', 'worker'): 1, ('worker', 'receive'): 1, ('receive', 'salary'): 1, ('salary', 'pay'): 1, ('pay', 'bill'): 1, ('bill', 'bitcoin'): 1, ('bitcoin', 'tourist'): 1, ('tourist', 'buy'): 1, ('buy', 'pupusas'): 1, ('pupusas', 'special'): 1, ('special', 'bitcoin'): 1, ('bitcoin', 'payment'): 1, ('payment', 'app'): 1, ('app', 'community'): 1, ('community', 'project'): 1, ('project', 'financed'): 1, ('financed', 'bitcoin'): 1, ('bitcoin', 'donation'): 1, ('donation', 'according'): 1, ('according', 'jorg'): 1, ('jorg', 'char'): 1, ('char', 'fine'): 1, ('fine', 'print'): 1, ('print', 'following'): 1, ('following', 'comment'): 1, ('comment', 'owned'): 1, ('owned', 'whoever'): 1, ('whoever', 'posted'): 1, ('posted', 'responsible'): 1, ('responsible', 'way'): 1, ('way', 'representation'): 1, ('salvador', 'law'): 1, ('law', 'making'): 1, ('bitcoin', 'le'): 1, ('le', 'char'): 1, ('el', 'salvadoran'): 1, ('salvadoran', 'beach'): 1, ('beach', 'town'): 1, ('town', 'el'): 1, ('el', 'zonte'): 4, ('zonte', 'visibly'): 1, ('visibly', 'poor'): 1, ('poor', 'dirt'): 1, ('dirt', 'road'): 1, ('road', 'faulty'): 1, ('faulty', 'drainage'): 1, ('drainage', 'system'): 1, ('system', 'one'): 1, ('one', 'way'): 1, ('way', 'ahead'): 1, ('ahead', 'rest'): 1, ('rest', 'country'): 1, ('country', 'ha'): 1, ('ha', 'bitcointhe'): 1, ('bitcointhe', 'tropical'): 1, ('tropical', 'surfing'): 1, ('surfing', 'sp'): 1, ('sp', 'char'): 1, ('char', 'new'): 6, ('new', 'york'): 7, ('york', 'reuters'): 2, ('bitcoin', 'investment'): 3, ('investment', 'product'): 4, ('product', 'fund'): 4, ('fund', 'posted'): 3, ('posted', 'sixth'): 3, ('sixth', 'consecutive'): 3, ('consecutive', 'week'): 3, ('week', 'outflow'): 3, ('outflow', 'according'): 3, ('according', 'data'): 4, ('data', 'monday'): 3, ('monday', 'digital'): 3, ('digital', 'asset'): 4, ('asset', 'manager'): 4, ('manager', 'coinshares'): 3, ('coinshares', 'crackdown'): 3, ('crackdown', 'china'): 1, ('china', 'char'): 2, ('char', 'kitco'): 1, ('kitco', 'news'): 1, ('news', 'bitcoin'): 1, ('twoweek', 'low'): 3, ('low', 'monday'): 1, ('monday', 'cnbcs'): 1, ('cnbcs', 'jim'): 1, ('jim', 'cramer'): 1, ('cramer', 'said'): 1, ('said', 'sold'): 1, ('sold', 'almost'): 1, ('almost', 'bitcoin'): 1, ('bitcoin', 'citing'): 1, ('citing', 'concern'): 1, ('concern', 'china'): 1, ('china', 'crypto'): 1, ('crypto', 'mining'): 1, ('mining', 'crackdown'): 1, ('crackdown', 'ransomware'): 1, ('ransomware', 'attackssold'): 1, ('attackssold', 'almos'): 1, ('almos', 'char'): 1, ('reuters', 'star'): 1, ('star', 'stock'): 1, ('stock', 'picker'): 1, ('picker', 'cathie'): 1, ('cathie', 'wood'): 1, ('wood', 'ark'): 1, ('ark', 'char'): 1, ('world', 'adopt'): 2, ('tender', 'president'): 1, ('bukele', 'touting'): 1, ('touting', 'use'): 1, ('use', 'potential'): 1, ('potential', 'help'): 1, ('help', 'salvadoran'): 1, ('salvadoran', 'living'): 1, ('living', 'abroad'): 1, ('abroad', 'send'): 1, ('send', 'remitta'): 1, ('remitta', 'char'): 1, ('char', 'world'): 1, ('world', 'ha'): 1, ('ha', 'known'): 1, ('known', 'month'): 1, ('month', 'half'): 1, ('half', 'world'): 1, ('world', 'bitcoin'): 2, ('bitcoin', 'miner'): 2, ('miner', 'would'): 1, ('would', 'going'): 1, ('going', 'dark'): 1, ('dark', 'china'): 1, ('china', 'cracked'): 1, ('cracked', 'mining'): 1, ('mining', 'happened'): 1, ('happened', 'bitcoin'): 1, ('bitcoin', 'algorithm'): 1, ('algorithm', 'ha'): 1, ('ha', 'adjusted'): 1, ('adjusted', 'according'): 1, ('according', 'char'): 1, ('bitcoin', 'paper'): 1, ('paper', 'wallet'): 1, ('wallet', 'qr'): 1, ('qr', 'code'): 1, ('code', 'coin'): 1, ('coin', 'seen'): 1, ('taken', 'la'): 1, ('la', 'maison'): 1, ('maison', 'du'): 1, ('du', 'bitcoin'): 1, ('bitcoin', 'paris'): 1, ('paris', 'july'): 1, ('july', 'reutersbenoit'): 1, ('reutersbenoit', 'tessier'): 1, ('tessier', 'take'): 1, ('take', 'courage'): 1, ('courage', 'borrow'): 1, ('borrow', 'million'): 1, ('million', 'char'): 1, ('reuters', 'staffmexico'): 1, ('staffmexico', 'city'): 1, ('city', 'june'): 1, ('bukele', 'said'): 1, ('said', 'saturday'): 2, ('saturday', 'send'): 1, ('send', 'congress'): 1, ('congress', 'bill'): 1, ('bill', 'next'): 1, ('next', 'week'): 1, ('week', 'make'): 1, ('make', 'bitcoin'): 3, ('tender', 'countryin'): 1, ('countryin', 'char'): 1, ('char', 'eric'): 1, ('eric', 'gravengaard'): 1, ('gravengaard', 'ceo'): 1, ('ceo', 'athena'): 1, ('athena', 'bitcoin'): 1, ('bitcoin', 'inc'): 1, ('inc', 'show'): 1, ('show', 'use'): 1, ('use', 'bitcoin'): 1, ('bitcoin', 'atm'): 1, ('atm', 'presentation'): 1, ('presentation', 'ahead'): 1, ('ahead', 'news'): 1, ('news', 'conference'): 1, ('conference', 'san'): 1, ('salvador', 'el'): 1, ('june', 'reutersjose'): 3, ('reutersjose', 'cabezasfilessan'): 1, ('cabezasfilessan', 'char'): 1, ('crackdown', 'char'): 2, ('front', 'image'): 1, ('image', 'chinese'): 1, ('chinese', 'flag'): 1, ('flag', 'illustration'): 1, ('june', 'reutersflorence'): 1, ('reutersflorence', 'loillustrationa'): 1, ('loillustrationa', 'slew'): 1, ('slew', 'cryptorelated'): 1, ('cryptorelated', 'acco'): 1, ('acco', 'char'): 1, ('bitcoin', 'banner'): 2, ('banner', 'seen'): 2, ('seen', 'outside'): 3, ('outside', 'small'): 2, ('small', 'restaurant'): 2, ('restaurant', 'el'): 2, ('zonte', 'beach'): 2, ('beach', 'chiltiupan'): 2, ('chiltiupan', 'el'): 2, ('reutersjose', 'cabezasfile'): 2, ('cabezasfile', 'photoel'): 1, ('photoel', 'salvador'): 1, ('world', 'char'): 1, ('reuters', 'tesla'): 1, ('tesla', 'inc'): 1, ('inc', 'elon'): 1, ('musk', 'tweeted'): 1, ('tweeted', 'sunday'): 1, ('sunday', 'company'): 1, ('company', 'resume'): 1, ('resume', 'allowing'): 1, ('allowing', 'bitcoin'): 1, ('bitcoin', 'transaction'): 1, ('transaction', 'confirmation'): 1, ('confirmation', 'reasonable'): 1, ('reasonable', 'clean'): 1, ('energy', 'usage'): 1, ('usage', 'char'): 1, ('char', 'china'): 1, ('crackdown', 'cryptocurrencies'): 2, ('cryptocurrencies', 'ha'): 1, ('ha', 'spread'): 1, ('spread', 'country'): 1, ('country', 'southwest'): 1, ('southwest', 'campaign'): 1, ('campaign', 'misuse'): 1, ('misuse', 'electricity'): 1, ('electricity', 'bitcoin'): 1, ('miner', 'yunnan'): 1, ('yunnan', 'province'): 1, ('province', 'local'): 1, ('local', 'medium'): 1, ('medium', 'reported'): 1, ('reported', 'saturdayin'): 1, ('saturdayin', 'char'): 1, ('staffadds', 'detail'): 1, ('detail', 'give'): 1, ('give', 'contextmadrid'): 1, ('contextmadrid', 'june'): 1, ('reuters', 'spain'): 1, ('spain', 'bbva'): 1, ('bbva', 'said'): 1, ('said', 'friday'): 1, ('friday', 'said'): 1, ('said', 'wa'): 1, ('wa', 'launching'): 1, ('launching', 'bitcoin'): 1, ('bitcoin', 'trading'): 1, ('trading', 'service'): 1, ('service', 'private'): 1, ('private', 'banking'): 1, ('banking', 'client'): 1, ('client', 'switzerland'): 1, ('switzerland', 'char'): 1, ('bitcoin', 'slipped'): 1, ('slipped', 'friday'): 1, ('friday', 'tesla'): 1, ('musk', 'fired'): 1, ('fired', 'tweet'): 1, ('tweet', 'hinting'): 1, ('hinting', 'breakup'): 1, ('breakup', 'cryptocurrency'): 1, ('cryptocurrency', 'though'): 1, ('though', 'remains'): 1, ('remains', 'course'): 1, ('course', 'best'): 1, ('best', 'weekly'): 1, ('weekly', 'gain'): 1, ('gain', 'month'): 1, ('month', 'char'): 1, ('fell', 'twoweek'): 1, ('low', 'amid'): 1, ('amid', 'intensifying'): 1, ('intensifying', 'cryptocurrency'): 1, ('cryptocurrency', 'crackdown'): 1, ('crackdown', 'chinathe'): 1, ('chinathe', 'largest'): 1, ('largest', 'virtual'): 1, ('currency', 'fell'): 1, ('fell', 'per'): 1, ('per', 'centto'): 1, ('centto', 'u'): 1, ('u', 'new'): 1, ('york', 'ether'): 1, ('ether', 'declined'): 1, ('declined', 'char'): 1, ('char', 'salvadoran'): 1, ('salvadoran', 'el'): 1, ('zonte', 'community'): 1, ('community', 'using'): 1, ('using', 'bitcoin'): 1, ('bitcoin', 'two'): 1, ('two', 'year'): 1, ('year', 'business'): 1, ('business', 'purchase'): 1, ('purchase', 'basic'): 1, ('basic', 'basket'): 1, ('basket', 'payment'): 1, ('payment', 'el'): 1, ('salvador', 'became'): 1, ('became', 'first'): 1, ('world', 'recognizi'): 1, ('recognizi', 'char'): 1, ('char', 'bitcoinnurphotogetty'): 1, ('bitcoinnurphotogetty', 'imagesthe'): 1, ('imagesthe', 'number'): 1, ('number', 'active'): 1, ('active', 'bitcoin'): 1, ('bitcoin', 'address'): 1, ('address', 'dropped'): 1, ('dropped', 'april'): 1, ('april', 'peak'): 1, ('peak', 'million'): 1, ('million', 'around'): 1, ('around', 'sunday'): 1, ('sunday', 'according'): 1, ('data', 'blockchain'): 1, ('blockchain', 'analytics'): 1, ('analytics', 'char'): 1, ('york', 'time'): 1, ('time', 'argues'): 1, ('argues', 'week'): 1, ('week', 'changed'): 1, ('changed', 'bitcoins'): 1, ('bitcoins', 'reputation'): 1, ('reputation', 'secure'): 1, ('secure', 'decentralized'): 1, ('decentralized', 'anonymous'): 1, ('anonymous', 'adding'): 1, ('adding', 'criminal'): 1, ('criminal', 'often'): 1, ('often', 'operating'): 1, ('operating', 'hidden'): 1, ('hidden', 'reach'): 1, ('reach', 'internet'): 1, ('internet', 'flocked'): 1, ('flocked', 'bitcoi'): 1, ('char', 'ransomware'): 1, ('ransomware', 'case'): 1, ('case', 'surge'): 1, ('surge', 'cyber'): 1, ('cyber', 'criminal'): 1, ('criminal', 'almost'): 1, ('almost', 'almost'): 1, ('almost', 'always'): 1, ('always', 'demand'): 1, ('demand', 'receive'): 1, ('receive', 'payment'): 1, ('payment', 'cryptocurrencies'): 1, ('cryptocurrencies', 'like'): 1, ('like', 'bitcoin'): 1, ('bitcoin', 'world'): 1, ('world', 'largest'): 1, ('largest', 'meat'): 1, ('supplier', 'jbs'): 1, ('jbs', 'announced'): 1, ('announced', 'wednesday'): 1, ('wednesday', 'char'): 2, ('reutersedgar', 'suillustrationbitcoin'): 1, ('suillustrationbitcoin', 'fell'): 1, ('fell', 'threeweek'): 1, ('threeweek', 'low'): 1, ('low', 'tuesday'): 1, ('tuesday', 'amid'): 1, ('amid', 'sign'): 1, ('sign', 'institut'): 1, ('institut', 'char'): 1, ('contributor', 'ownchina'): 1, ('ownchina', 'ha'): 1, ('ha', 'home'): 1, ('home', 'ofthe'): 1, ('ofthe', 'world'): 1, ('mining', 'recent'): 1, ('recent', 'year'): 1, ('year', 'energyintensive'): 1, ('energyintensive', 'process'): 1, ('process', 'make'): 1, ('make', 'new'): 1, ('new', 'coin'): 1, ('coin', 'k'): 1, ('k', 'char'): 1, ('char', 'washington'): 1, ('washington', 'june'): 1, ('reuters', 'u'): 2, ('u', 'regulator'): 2, ('regulator', 'wednesday'): 2, ('wednesday', 'delayed'): 1, ('delayed', 'decision'): 1, ('decision', 'whether'): 1, ('whether', 'approve'): 1, ('approve', 'application'): 1, ('application', 'would'): 1, ('would', 'country'): 1, ('country', 'first'): 1, ('first', 'bitcoin'): 1, ('bitcoin', 'exchange'): 1, ('exchange', 'traded'): 1, ('traded', 'fund'): 1, ('fund', 'etf'): 1, ('etf', 'fil'): 1, ('fil', 'char'): 1, ('reutersedgar', 'suillustrationwashington'): 1, ('suillustrationwashington', 'june'): 1, ('char', 'article'): 1, ('article', 'wa'): 1, ('wa', 'translated'): 1, ('translated', 'spanish'): 1, ('spanish', 'edition'): 1, ('edition', 'using'): 1, ('using', 'ai'): 1, ('ai', 'technology'): 1, ('technology', 'error'): 1, ('error', 'may'): 1, ('may', 'exist'): 1, ('exist', 'due'): 1, ('due', 'processthe'): 1, ('processthe', 'cryptocurrencyfell'): 1, ('cryptocurrencyfell', 'first'): 1, ('first', 'time'): 1, ('time', 'since'): 1, ('since', 'january'): 1, ('january', 'crash'): 1, ('crash', 'char'): 1, ('tender', 'congress'): 1, ('congress', 'approved'): 1, ('approved', 'president'): 1, ('nayib', 'bukeles'): 1, ('bukeles', 'proposal'): 1, ('proposal', 'embrace'): 1, ('embrace', 'cryptocurrencywith'): 1, ('cryptocurrencywith', 'possi'): 1, ('possi', 'char'): 1, ('char', 'exchange'): 1, ('exchange', 'rate'): 1, ('rate', 'logo'): 1, ('logo', 'bitcoin'): 1, ('bitcoin', 'bth'): 1, ('bth', 'ether'): 1, ('ether', 'eth'): 1, ('eth', 'litecoin'): 1, ('litecoin', 'ltc'): 1, ('ltc', 'monero'): 1, ('monero', 'xmr'): 1, ('xmr', 'seen'): 1, ('seen', 'display'): 1, ('display', 'cryptocurrency'): 1, ('cryptocurrency', 'atm'): 1, ('atm', 'blockchain'): 1, ('blockchain', 'payment'): 1, ('payment', 'service'): 1, ('service', 'provider'): 1, ('provider', 'bity'): 1, ('bity', 'house'): 1, ('house', 'char'): 1, ('reuters', 'bank'): 1, ('bank', 'must'): 2, ('must', 'set'): 2, ('set', 'aside'): 2, ('aside', 'enough'): 2, ('enough', 'capital'): 2, ('capital', 'cover'): 2, ('cover', 'loss'): 2, ('loss', 'bitcoin'): 2, ('bitcoin', 'holding'): 2, ('holding', 'full'): 2, ('full', 'global'): 2, ('global', 'banking'): 2, ('banking', 'regulator'): 2, ('regulator', 'proposed'): 2, ('proposed', 'thursday'): 2, ('thursday', 'conservative'): 2, ('conservative', 'step'): 2, ('step', 'could'): 2, ('could', 'prev'): 1, ('prev', 'char'): 1, ('char', 'u'): 1, ('u', 'five'): 1, ('five', 'dollar'): 1, ('dollar', 'note'): 1, ('note', 'seen'): 1, ('illustration', 'photo'): 1, ('photo', 'june'): 1, ('june', 'reutersthomas'): 1, ('reutersthomas', 'whiteillustrationfile'): 1, ('whiteillustrationfile', 'photonew'): 1, ('photonew', 'york'): 2, ('reuters', 'dollar'): 5, ('dollar', 'retreated'): 3, ('retreated', 'twomonth'): 3, ('twomonth', 'high'): 3, ('high', 'monday'): 3, ('monday', 'char'): 2, ('reuters', 'rare'): 2, ('bought', 'auction'): 1, ('cryptocurrencies', 'sothebys'): 1, ('sothebys', 'announced'): 1, ('announced', 'monday'): 1, ('monday', 'investor'): 2, ('investor', 'continued'): 2, ('continued', 'evaluate'): 2, ('evaluate', 'whether'): 2, ('whether', 'perceived'): 2, ('perceived', 'hawkish'): 2, ('hawkish', 'tilt'): 4, ('tilt', 'federal'): 2, ('federal', 'reserve'): 2, ('reserve', 'last'): 2, ('week', 'mean'): 2, ('mean', 'pause'): 1, ('pause', 'char'): 1, ('char', 'graphic'): 1, ('graphic', 'world'): 1, ('world', 'fx'): 1, ('fx', 'rate'): 1, ('rate', 'tmsnrtrsrbwielondon'): 1, ('tmsnrtrsrbwielondon', 'june'): 1, ('dollar', 'held'): 2, ('held', 'previous'): 2, ('previous', 'week'): 2, ('week', 'gain'): 2, ('gain', 'monday'): 2, ('monday', 'fed'): 2, ('fed', 'surprise'): 2, ('surprise', 'hawkish'): 2, ('tilt', 'bitcoin'): 2, ('tumbled', 'china'): 2, ('char', 'hong'): 1, ('hong', 'kong'): 1, ('kong', 'reuters'): 1, ('bitcoin', 'regained'): 1, ('regained', 'ground'): 1, ('ground', 'tuesday'): 1, ('tuesday', 'day'): 1, ('day', 'touching'): 1, ('touching', 'twoweek'): 1, ('low', 'china'): 1, ('china', 'central'): 1, ('central', 'bank'): 1, ('bank', 'reaffirmed'): 1, ('reaffirmed', 'crackdown'): 1, ('cryptocurrencies', 'restricted'): 1, ('restricted', 'trading'): 1, ('trading', 'channel'): 1, ('channel', 'char'): 1, ('reutersedgar', 'suillustrationhong'): 1, ('suillustrationhong', 'kong'): 1, ('kong', 'june'): 1, ('bitcoin', 'stabilised'): 1, ('stabilised', 'asia'): 1, ('asia', 'char'): 1, ('salvador', 'congress'): 1, ('congress', 'midnight'): 1, ('midnight', 'tuesday'): 1, ('tuesday', 'approved'): 1, ('approved', 'proposal'): 1, ('proposal', 'president'): 1, ('bukele', 'law'): 1, ('law', 'classify'): 1, ('tender', 'making'): 1, ('making', 'central'): 1, ('central', 'america'): 1, ('america', 'char'): 1, ('salvador', 'decision'): 1, ('decision', 'make'): 1, ('tender', 'interesting'): 1, ('interesting', 'experiment'): 1, ('experiment', 'speculative'): 1, ('speculative', 'asset'): 1, ('asset', 'doe'): 1, ('doe', 'pa'): 1, ('pa', 'test'): 1, ('test', 'mean'): 1, ('mean', 'payment'): 1, ('payment', 'senior'): 1, ('senior', 'global'): 1, ('global', 'central'): 1, ('central', 'banking'): 1, ('banking', 'char'): 1, ('mean', 'paus'): 1, ('paus', 'char'): 1, ('char', 'logo'): 1, ('logo', 'pictured'): 1, ('pictured', 'sothebys'): 1, ('sothebys', 'geneva'): 1, ('geneva', 'switzerland'): 1, ('switzerland', 'june'): 1, ('june', 'reutersdenis'): 1, ('reutersdenis', 'balibousejune'): 1, ('balibousejune', 'reuters'): 1, ('bought', 'char'): 1, ('char', 'bank'): 1, ('could', 'prevent'): 1, ('prevent', 'widescale'): 1, ('widescale', 'use'): 1, ('use', 'c'): 1, ('c', 'char'): 3, ('china', 'stepped'): 1, ('stepped', 'crackdown'): 1, ('crackdown', 'mining'): 1, ('mining', 'c'): 1, ('char', 'blockchain'): 1, ('blockchain', 'technology'): 1, ('technology', 'company'): 1, ('company', 'blockstream'): 1, ('blockstream', 'mining'): 1, ('mining', 'said'): 1, ('saturday', 'square'): 1, ('square', 'inc'): 1, ('inc', 'sqn'): 1, ('sqn', 'invest'): 1, ('invest', 'million'): 1, ('million', 'build'): 1, ('build', 'opensource'): 1, ('opensource', 'solarpowered'): 1, ('solarpowered', 'bitcoin'): 1, ('mining', 'facility'): 1, ('facility', 'one'): 1, ('one', 'blockstreams'): 1, ('blockstreams', 'char'): 1, ('cabezasfile', 'photosmall'): 1, ('photosmall', 'transfer'): 1, ('transfer', 'bitcoin'): 1, ('bitcoin', 'el'): 1, ('salvador', 'jumped'): 1, ('jumped', 'ove'): 1, ('ove', 'char'): 1, ('photo', 'international'): 1, ('international', 'monetary'): 2, ('monetary', 'fund'): 2, ('fund', 'imf'): 1, ('imf', 'logo'): 1, ('logo', 'seen'): 1, ('outside', 'headquarters'): 1, ('headquarters', 'building'): 1, ('building', 'washington'): 1, ('washington', 'u'): 1, ('u', 'september'): 1, ('september', 'reutersyuri'): 1, ('reutersyuri', 'gripasfile'): 1, ('gripasfile', 'photonew'): 1, ('york', 'char'): 1, ('cryptocurrency', 'investment'): 1, ('fund', 'saw'): 1, ('saw', 'outflow'): 1, ('outflow', 'second'): 1, ('second', 'straight'): 1, ('straight', 'week'): 1, ('week', 'ether'): 1, ('ether', 'posting'): 1, ('posting', 'record'): 1, ('record', 'outflow'): 1, ('outflow', 'institutional'): 1, ('institutional', 'investor'): 1, ('investor', 'took'): 1, ('took', 'step'): 1, ('step', 'back'): 1, ('back', 'data'): 1, ('data', 'digital'): 1, ('manager', 'c'): 1, ('char', 'international'): 1, ('fund', 'said'): 1, ('said', 'thursday'): 1, ('thursday', 'ha'): 1, ('ha', 'number'): 1, ('number', 'economic'): 1, ('economic', 'legal'): 1, ('legal', 'concern'): 1, ('concern', 'regarding'): 1, ('regarding', 'move'): 1, ('move', 'el'): 1, ('salvador', 'make'): 1, ('bitcoin', 'parallel'): 1, ('parallel', 'legal'): 1, ('legal', 'tenderel'): 1, ('tenderel', 'salvador'): 1, ('become', 'th'): 1, ('th', 'char'): 1}
# Generate the Ethereum N-grams where N=2
# Create eth_string of all tokenized words per article
eth_string = " ".join(eth_df['token'].astype(str))
# Tokenize eth_string to ensure you have one big string
eth_string_processed = tokenizer(eth_string)
# Generate the Ethereum N-grams where N=2
eth_counts = Counter(ngrams(eth_string_processed, n=2))
print(dict(eth_counts)){('tldr', 'cryptocurrency'): 2, ('cryptocurrency', 'ethereum'): 4, ('ethereum', 'solidity'): 2, ('solidity', 'blockchain'): 2, ('blockchain', 'developer'): 2, ('developer', 'bundle'): 2, ('bundle', 'sale'): 1, ('sale', 'june'): 1, ('june', 'saving'): 1, ('saving', 'list'): 1, ('list', 'priceis'): 1, ('priceis', 'everyone'): 1, ('everyone', 'know'): 1, ('know', 'investing'): 1, ('investing', 'cryptocurrency'): 1, ('cryptocurrency', 'char'): 9, ('char', 'wasnt'): 1, ('wasnt', 'long'): 2, ('long', 'ago'): 2, ('ago', 'average'): 1, ('average', 'person'): 1, ('person', 'clue'): 1, ('clue', 'nft'): 1, ('nft', 'wa'): 1, ('wa', 'nowadays'): 1, ('nowadays', 'theyre'): 1, ('theyre', 'making'): 1, ('making', 'headline'): 1, ('headline', 'selling'): 1, ('selling', 'hundred'): 1, ('hundred', 'thousand'): 1, ('thousand', 'buck'): 1, ('buck', 'predictably'): 1, ('predictably', 'folk'): 1, ('folk', 'learning'): 1, ('learning', 'nfts'): 1, ('nfts', 'char'): 1, ('char', 'article'): 5, ('article', 'wa'): 5, ('wa', 'translated'): 5, ('translated', 'spanish'): 5, ('spanish', 'edition'): 5, ('edition', 'using'): 5, ('using', 'ai'): 5, ('ai', 'technology'): 5, ('technology', 'error'): 5, ('error', 'may'): 5, ('may', 'exist'): 5, ('exist', 'due'): 5, ('due', 'processlast'): 1, ('processlast', 'may'): 1, ('may', 'vitalik'): 1, ('vitalik', 'buterin'): 1, ('buterin', 'became'): 1, ('became', 'youngest'): 1, ('youngest', 'billionaire'): 1, ('billionaire', 'world'): 1, ('world', 'ye'): 1, ('ye', 'char'): 1, ('char', 'bitcoin'): 6, ('bitcoin', 'ethereumyuriko'): 1, ('ethereumyuriko', 'nakaoether'): 1, ('nakaoether', 'overtook'): 1, ('overtook', 'bitcoin'): 1, ('bitcoin', 'number'): 1, ('number', 'active'): 1, ('active', 'address'): 1, ('address', 'network'): 1, ('network', 'friday'): 1, ('friday', 'sign'): 1, ('sign', 'demand'): 1, ('demand', 'faltering'): 1, ('faltering', 'world'): 1, ('world', 'biggest'): 13, ('biggest', 'cryptocurrency'): 1, ('cryptocurrency', 'co'): 1, ('co', 'char'): 1, ('char', 'cryptopunks'): 1, ('cryptopunks', 'represent'): 1, ('represent', 'historically'): 1, ('historically', 'relevant'): 1, ('relevant', 'narrative'): 1, ('narrative', 'upon'): 1, ('upon', 'value'): 1, ('value', 'could'): 1, ('could', 'conceivably'): 1, ('conceivably', 'live'): 1, ('live', 'decade'): 1, ('decade', 'within'): 1, ('within', 'expanding'): 1, ('expanding', 'catalogue'): 1, ('catalogue', 'raisonn'): 1, ('raisonn', 'ill'): 1, ('ill', 'damned'): 1, ('damned', 'im'): 1, ('im', 'counting'): 1, ('counting', 'jack'): 1, ('jack', 'tweet'): 1, ('tweet', 'char'): 2, ('char', 'major'): 1, ('major', 'upgrade'): 1, ('upgrade', 'ethereum'): 1, ('ethereum', 'network'): 1, ('network', 'could'): 1, ('could', 'help'): 1, ('help', 'turn'): 1, ('turn', 'crypto'): 1, ('crypto', 'staking'): 1, ('staking', 'billion'): 1, ('billion', 'business'): 1, ('business', 'according'): 1, ('according', 'analyst'): 1, ('analyst', 'jpmorganthe'): 1, ('jpmorganthe', 'staking'): 1, ('staking', 'industry'): 1, ('industry', 'user'): 1, ('user', 'earn'): 1, ('earn', 'cryptocurrency'): 1, ('char', 'sir'): 1, ('sir', 'tim'): 1, ('tim', 'bernerslee'): 5, ('bernerslee', 'credited'): 1, ('credited', 'inventor'): 1, ('inventor', 'world'): 1, ('world', 'wide'): 7, ('wide', 'web'): 7, ('web', 'selling'): 1, ('selling', 'source'): 1, ('source', 'code'): 3, ('code', 'invention'): 1, ('invention', 'nft'): 1, ('nft', 'sothebys'): 1, ('sothebys', 'auctionthe'): 1, ('auctionthe', 'nft'): 1, ('nft', 'nonfungible'): 1, ('nonfungible', 'token'): 8, ('token', 'type'): 1, ('type', 'cryp'): 1, ('cryp', 'char'): 2, ('char', 'two'): 1, ('two', 'ethereumbased'): 1, ('ethereumbased', 'protocol'): 1, ('protocol', 'keep'): 1, ('keep', 'network'): 1, ('network', 'nucypher'): 1, ('nucypher', 'getting'): 1, ('getting', 'upgradesinto'): 1, ('upgradesinto', 'single'): 1, ('single', 'network'): 1, ('network', 'last'): 1, ('last', 'week'): 2, ('week', 'token'): 1, ('token', 'holder'): 1, ('holder', 'project'): 1, ('project', 'voted'): 1, ('voted', 'youve'): 1, ('youve', 'likely'): 1, ('likely', 'seen'): 1, ('seen', 'headline'): 1, ('headline', 'surrounding'): 1, ('surrounding', 'pretty'): 1, ('pretty', 'major'): 1, ('major', 'decline'): 1, ('decline', 'nft'): 1, ('nft', 'sale'): 1, ('sale', 'market'): 1, ('market', 'recent'): 1, ('recent', 'peak'): 1, ('peak', 'report'): 1, ('report', 'indicating'): 1, ('indicating', 'much'): 1, ('much', 'percent'): 1, ('percent', 'decline'): 1, ('decline', 'recent'): 1, ('recent', 'week'): 1, ('week', 'whi'): 1, ('whi', 'char'): 1, ('char', 'ambition'): 1, ('ambition', 'crypto'): 1, ('crypto', 'investor'): 2, ('investor', 'swelled'): 1, ('swelled', 'even'): 1, ('even', 'faster'): 1, ('faster', 'market'): 1, ('market', 'ha'): 1, ('ha', 'recent'): 1, ('recent', 'month'): 1, ('month', 'institutional'): 1, ('institutional', 'player'): 1, ('player', 'mountain'): 1, ('mountain', 'blockchain'): 1, ('blockchain', 'data'): 1, ('data', 'try'): 1, ('try', 'make'): 1, ('make', 'sense'): 1, ('sense', 'without'): 1, ('without', 'par'): 1, ('par', 'char'): 1, ('bitcoin', 'surged'): 4, ('surged', 'wednesday'): 1, ('wednesday', 'adding'): 1, ('adding', 'previous'): 6, ('previous', 'closebitcoin'): 12, ('closebitcoin', 'world'): 12, ('biggest', 'bestknown'): 12, ('bestknown', 'cryptocurrency'): 11, ('cryptocurrency', 'year'): 3, ('year', 'low'): 3, ('low', 'jan'): 1, ('jan', 'char'): 1, ('bitcoin', 'dropped'): 6, ('dropped', 'gmt'): 2, ('gmt', 'saturday'): 1, ('saturday', 'losing'): 1, ('losing', 'previous'): 6, ('cryptocurrency', 'high'): 1, ('high', 'char'): 1, ('char', 'tldr'): 1, ('bundle', 'explains'): 1, ('explains', 'entire'): 1, ('entire', 'crypto'): 1, ('crypto', 'phenomenon'): 1, ('phenomenon', 'also'): 1, ('also', 'explores'): 1, ('explores', 'creating'): 1, ('creating', 'real'): 1, ('real', 'world'): 1, ('world', 'cryptocurrencyif'): 1, ('cryptocurrencyif', 'knowledge'): 1, ('knowledge', 'char'): 1, ('char', 'ina'): 1, ('ina', 'fassbenderafp'): 1, ('fassbenderafp', 'via'): 1, ('via', 'getty'): 3, ('getty', 'imagesinvestors'): 1, ('imagesinvestors', 'pulled'): 1, ('pulled', 'money'): 1, ('money', 'digital'): 1, ('digital', 'asset'): 7, ('asset', 'third'): 1, ('third', 'week'): 1, ('week', 'running'): 1, ('running', 'making'): 1, ('making', 'longest'): 1, ('longest', 'series'): 1, ('series', 'consecutive'): 1, ('consecutive', 'outflow'): 1, ('outflow', 'since'): 1, ('since', 'february'): 1, ('february', 'coinsh'): 1, ('coinsh', 'char'): 1, ('surged', 'gmt'): 2, ('gmt', 'sunday'): 4, ('sunday', 'adding'): 5, ('low', 'char'): 2, ('char', 'reuters'): 10, ('reuters', 'staffjune'): 5, ('staffjune', 'reuters'): 5, ('reuters', 'bitcoin'): 13, ('bitcoin', 'dipped'): 3, ('dipped', 'gmt'): 3, ('gmt', 'friday'): 2, ('friday', 'losing'): 3, ('bitcoin', 'rose'): 2, ('rose', 'gmt'): 2, ('dropped', 'friday'): 1, ('reuters', 'stafffile'): 3, ('stafffile', 'photo'): 3, ('photo', 'representation'): 3, ('representation', 'bitcoin'): 2, ('bitcoin', 'cryptocurrency'): 2, ('cryptocurrency', 'seen'): 2, ('seen', 'picture'): 3, ('picture', 'illustration'): 5, ('illustration', 'taken'): 7, ('taken', 'june'): 9, ('june', 'reutersedgar'): 6, ('reutersedgar', 'suillustrationreuters'): 1, ('suillustrationreuters', 'bitcoin'): 1, ('dropped', 'char'): 3, ('char', 'june'): 3, ('june', 'reuters'): 9, ('gmt', 'monday'): 2, ('monday', 'losing'): 2, ('seen', 'illustration'): 4, ('illustration', 'picture'): 4, ('picture', 'taken'): 3, ('reutersedgar', 'suillustrationfile'): 1, ('suillustrationfile', 'photoreuters'): 1, ('photoreuters', 'bitcoin'): 1, ('bitcoin', 'ro'): 1, ('ro', 'char'): 1, ('char', 'new'): 4, ('new', 'york'): 5, ('york', 'june'): 4, ('bitcoin', 'investment'): 3, ('investment', 'product'): 5, ('product', 'fund'): 5, ('fund', 'posted'): 4, ('posted', 'sixth'): 3, ('sixth', 'consecutive'): 3, ('consecutive', 'week'): 3, ('week', 'outflow'): 3, ('outflow', 'according'): 3, ('according', 'data'): 4, ('data', 'monday'): 3, ('monday', 'digital'): 3, ('asset', 'manager'): 4, ('manager', 'coinshares'): 3, ('coinshares', 'crackdown'): 3, ('crackdown', 'char'): 2, ('york', 'reuters'): 1, ('crackdown', 'china'): 1, ('china', 'char'): 1, ('char', 'representation'): 9, ('representation', 'virtual'): 6, ('virtual', 'currency'): 3, ('currency', 'bitcoin'): 2, ('bitcoin', 'seen'): 4, ('seen', 'front'): 3, ('front', 'stock'): 2, ('stock', 'graph'): 2, ('graph', 'illustration'): 2, ('illustration', 'takenmay'): 1, ('takenmay', 'reutersdado'): 1, ('reutersdado', 'ruvicillustrationjuly'): 1, ('ruvicillustrationjuly', 'reuters'): 1, ('virtual', 'cryptocurrency'): 4, ('cryptocurrency', 'bitcoin'): 2, ('reutersedgar', 'suillustrationjune'): 3, ('suillustrationjune', 'reuters'): 2, ('char', 'hardly'): 1, ('hardly', 'unexpected'): 1, ('unexpected', 'bitcoin'): 1, ('bitcoin', 'one'): 1, ('one', 'bestperforming'): 1, ('bestperforming', 'asset'): 1, ('asset', 'past'): 1, ('past', 'year'): 1, ('year', 'clash'): 1, ('clash', 'increasingly'): 1, ('increasingly', 'popular'): 1, ('popular', 'trend'): 1, ('trend', 'environmental'): 1, ('environmental', 'social'): 1, ('social', 'governance'): 1, ('governance', 'investingsince'): 1, ('investingsince', 'tesla'): 1, ('tesla', 'c'): 1, ('c', 'char'): 4, ('char', 'update'): 1, ('update', 'existing'): 1, ('existing', 'art'): 1, ('art', 'app'): 1, ('app', 'allows'): 1, ('allows', 'artist'): 1, ('artist', 'access'): 1, ('access', 'nft'): 2, ('nft', 'marketplace'): 1, ('marketplace', 'directly'): 1, ('directly', 'could'): 1, ('could', 'potential'): 1, ('potential', 'democratize'): 1, ('democratize', 'access'): 1, ('nft', 'world'): 1, ('world', 'artist'): 1, ('artist', 'currently'): 1, ('currently', 'crypto'): 1, ('crypto', 'sketchar'): 1, ('sketchar', 'char'): 1, ('char', 'personal'): 1, ('personal', 'finance'): 1, ('finance', 'insider'): 1, ('insider', 'writes'): 1, ('writes', 'product'): 1, ('product', 'strategy'): 1, ('strategy', 'tip'): 1, ('tip', 'help'): 1, ('help', 'make'): 1, ('make', 'smart'): 1, ('smart', 'decision'): 1, ('decision', 'money'): 1, ('money', 'may'): 1, ('may', 'receive'): 1, ('receive', 'small'): 1, ('small', 'commission'): 1, ('commission', 'partner'): 1, ('partner', 'like'): 1, ('like', 'american'): 1, ('american', 'express'): 1, ('express', 'char'): 1, ('reuters', 'global'): 2, ('global', 'security'): 1, ('security', 'index'): 1, ('index', 'publisher'): 1, ('publisher', 'msc'): 1, ('msc', 'char'): 1, ('representation', 'ethereum'): 1, ('ethereum', 'virtual'): 1, ('currency', 'standing'): 1, ('standing', 'pc'): 1, ('pc', 'motherboard'): 1, ('motherboard', 'seen'): 1, ('picture', 'february'): 1, ('february', 'reutersdado'): 1, ('reutersdado', 'ruvicillustrationfile'): 1, ('ruvicillustrationfile', 'photonew'): 1, ('photonew', 'york'): 1, ('june', 'char'): 1, ('char', 'nonfungible'): 2, ('token', 'platform'): 1, ('platform', 'mintable'): 1, ('mintable', 'raised'): 1, ('raised', 'million'): 2, ('million', 'series'): 1, ('series', 'financing'): 1, ('financing', 'thursday'): 1, ('thursday', 'singaporebased'): 1, ('singaporebased', 'company'): 1, ('company', 'backed'): 1, ('backed', 'like'): 1, ('like', 'mark'): 1, ('mark', 'cuban'): 1, ('cuban', 'marc'): 1, ('marc', 'benioff'): 1, ('benioff', 'look'): 1, ('look', 'scale'): 1, ('scale', 'upthe'): 1, ('upthe', 'fu'): 1, ('fu', 'char'): 1, ('char', 'stock'): 2, ('stock', 'market'): 2, ('market', 'seeing'): 2, ('seeing', 'demise'): 1, ('demise', 'broker'): 1, ('broker', 'crypto'): 1, ('crypto', 'market'): 3, ('seeing', 'revivalunlike'): 1, ('revivalunlike', 'stock'): 1, ('market', 'crypto'): 1, ('market', 'fragmented'): 1, ('fragmented', 'filled'): 1, ('filled', 'challenge'): 1, ('challenge', 'around'): 1, ('around', 'security'): 1, ('security', 'char'): 1, ('char', 'opinion'): 7, ('opinion', 'expressed'): 7, ('expressed', 'entrepreneur'): 7, ('entrepreneur', 'contributor'): 7, ('contributor', 'ownnonfungible'): 1, ('ownnonfungible', 'token'): 1, ('token', 'nfts'): 3, ('nfts', 'longer'): 1, ('longer', 'mysterious'): 1, ('mysterious', 'sparsely'): 1, ('sparsely', 'covered'): 1, ('covered', 'topic'): 1, ('topic', 'noteworthy'): 1, ('noteworthy', 'transaction'): 1, ('transaction', 'thi'): 1, ('thi', 'char'): 1, ('contributor', 'owndefi'): 1, ('owndefi', 'also'): 1, ('also', 'known'): 1, ('known', 'decentralized'): 1, ('decentralized', 'finance'): 1, ('finance', 'fascinating'): 1, ('fascinating', 'rapidly'): 1, ('rapidly', 'growing'): 1, ('growing', 'industry'): 1, ('industry', 'cutting'): 1, ('cutting', 'edge'): 1, ('edge', 'modern'): 1, ('modern', 'technology'): 1, ('technology', 'spur'): 1, ('spur', 'char'): 1, ('char', 'rafael'): 1, ('rafael', 'henriquesopa'): 1, ('henriquesopa', 'imageslightrocket'): 1, ('imageslightrocket', 'via'): 1, ('getty', 'image'): 1, ('image', 'brendan'): 1, ('brendan', 'mcdermidreutersscrutiny'): 1, ('mcdermidreutersscrutiny', 'security'): 1, ('security', 'exchange'): 1, ('exchange', 'commission'): 1, ('commission', 'ha'): 1, ('ha', 'standing'): 1, ('standing', 'way'): 1, ('way', 'robinhoods'): 1, ('robinhoods', 'plan'): 1, ('plan', 'go'): 1, ('go', 'public'): 1, ('public', 'char'): 1, ('reuters', 'staffadds'): 1, ('staffadds', 'context'): 1, ('context', 'backgroundjune'): 1, ('backgroundjune', 'reuters'): 1, ('surged', 'sunday'): 1, ('bestknown', 'cryp'): 1, ('representation', 'cryptocurrencies'): 5, ('cryptocurrencies', 'including'): 2, ('including', 'bitcoin'): 2, ('bitcoin', 'dash'): 2, ('dash', 'ethereum'): 2, ('ethereum', 'ripple'): 2, ('ripple', 'litecoin'): 3, ('litecoin', 'seen'): 3, ('june', 'reutersflorence'): 2, ('reutersflorence', 'lo'): 1, ('lo', 'char'): 1, ('char', 'february'): 1, ('february', 'figma'): 1, ('figma', 'ceo'): 1, ('ceo', 'dylan'): 1, ('dylan', 'field'): 1, ('field', 'sold'): 1, ('sold', 'piece'): 1, ('piece', 'nft'): 1, ('nft', 'art'): 2, ('art', 'million'): 1, ('million', 'similarly'): 1, ('similarly', 'twitter'): 1, ('twitter', 'cofounder'): 1, ('cofounder', 'jack'): 1, ('jack', 'dorsey'): 1, ('dorsey', 'sold'): 1, ('sold', 'first'): 1, ('first', 'tweet'): 1, ('tweet', 'twitter'): 1, ('twitter', 'nft'): 1, ('nft', 'nft'): 1, ('nft', 'non'): 1, ('non', 'char'): 1, ('char', 'cryptocurrency'): 2, ('cryptocurrency', 'rollercoaster'): 1, ('rollercoaster', 'continues'): 1, ('continues', 'thanks'): 1, ('thanks', 'igettyjordan'): 1, ('igettyjordan', 'mansfieldbitcoin'): 1, ('mansfieldbitcoin', 'popular'): 1, ('popular', 'cryptocurrencies'): 1, ('cryptocurrencies', 'friday'): 1, ('friday', 'cryptic'): 1, ('cryptic', 'tweet'): 1, ('tweet', 'tesla'): 1, ('tesla', 'spacex'): 1, ('spacex', 'ceo'): 1, ('ceo', 'elon'): 1, ('elon', 'musk'): 3, ('musk', 'appea'): 1, ('appea', 'char'): 1, ('char', 'number'): 1, ('number', 'uk'): 1, ('uk', 'adult'): 1, ('adult', 'hold'): 1, ('hold', 'cryptocurrencies'): 1, ('cryptocurrencies', 'bitcoin'): 2, ('bitcoin', 'ha'): 2, ('ha', 'risen'): 1, ('risen', 'estimated'): 1, ('estimated', 'million'): 1, ('million', 'despite'): 1, ('despite', 'warning'): 1, ('warning', 'regulator'): 1, ('regulator', 'head'): 1, ('head', 'bank'): 1, ('bank', 'england'): 1, ('england', 'people'): 1, ('people', 'pre'): 1, ('pre', 'char'): 1, ('ethereum', 'seen'): 2, ('seen', 'among'): 2, ('among', 'representation'): 2, ('cryptocurrencies', 'picture'): 2, ('suillustrationjune', 'char'): 1, ('reutersflorence', 'loillustrationmore'): 1, ('loillustrationmore', 'regulation'): 1, ('regulation', 'char'): 1, ('char', 'world'): 1, ('web', 'founder'): 1, ('founder', 'tim'): 1, ('bernerslee', 'pose'): 1, ('pose', 'photograph'): 1, ('photograph', 'following'): 1, ('following', 'speech'): 1, ('speech', 'mozilla'): 1, ('mozilla', 'festival'): 1, ('festival', 'london'): 1, ('london', 'britain'): 1, ('britain', 'october'): 1, ('october', 'reuterssimon'): 1, ('reuterssimon', 'dawsonlondon'): 1, ('dawsonlondon', 'june'): 1, ('reuters', 'bid'): 1, ('bid', 'char'): 1, ('cryptocurrency', 'investment'): 1, ('fund', 'saw'): 1, ('saw', 'outflow'): 1, ('outflow', 'second'): 1, ('second', 'straight'): 1, ('straight', 'week'): 1, ('week', 'ether'): 1, ('ether', 'posting'): 1, ('posting', 'record'): 1, ('record', 'outflow'): 2, ('outflow', 'institutional'): 1, ('institutional', 'investor'): 1, ('investor', 'took'): 1, ('took', 'step'): 1, ('step', 'back'): 1, ('back', 'data'): 1, ('data', 'digital'): 1, ('manager', 'c'): 1, ('due', 'processthe'): 3, ('processthe', 'cryptocurrencyfell'): 1, ('cryptocurrencyfell', 'first'): 1, ('first', 'time'): 1, ('time', 'since'): 1, ('since', 'january'): 1, ('january', 'crash'): 1, ('crash', 'char'): 1, ('june', 'min'): 1, ('min', 'readthis'): 1, ('readthis', 'story'): 1, ('story', 'originally'): 1, ('originally', 'appeared'): 1, ('appeared', 'dueit'): 1, ('dueit', 'wasnt'): 1, ('ago', 'business'): 1, ('business', 'purchase'): 2, ('purchase', 'qr'): 1, ('qr', 'scan'): 1, ('scan', 'transfer'): 1, ('transfer', 'cryptocurrency'): 1, ('cryptocurrency', 'wallet'): 1, ('wallet', 'wallet'): 1, ('wallet', 'sounded'): 1, ('sounded', 'like'): 1, ('like', 'science'): 1, ('science', 'fic'): 1, ('fic', 'char'): 1, ('char', 'london'): 3, ('london', 'bid'): 1, ('bid', 'nonfungible'): 1, ('token', 'original'): 1, ('original', 'source'): 3, ('code', 'world'): 2, ('web', 'written'): 1, ('written', 'inventor'): 2, ('inventor', 'tim'): 2, ('bernerslee', 'soared'): 1, ('soared', 'million'): 1, ('million', 'opening'): 1, ('opening', 'price'): 1, ('price', 'two'): 1, ('two', 'day'): 1, ('day', 'char'): 1, ('char', 'en'): 1, ('en', 'stand'): 1, ('stand', 'ethereum'): 1, ('ethereum', 'name'): 1, ('name', 'service'): 1, ('service', 'decentralized'): 1, ('decentralized', 'domain'): 1, ('domain', 'name'): 1, ('name', 'system'): 1, ('system', 'built'): 1, ('built', 'ethereum'): 1, ('ethereum', 'blockchain'): 1, ('blockchain', 'get'): 1, ('get', 'domain'): 1, ('domain', 'eth'): 1, ('eth', 'extension'): 1, ('extension', 'going'): 1, ('going', 'connecting'): 1, ('connecting', 'wallet'): 1, ('wallet', 'char'): 1, ('char', 'neither'): 1, ('neither', 'author'): 1, ('author', 'kai'): 1, ('kai', 'morris'): 1, ('morris', 'website'): 1, ('website', 'tokenist'): 1, ('tokenist', 'provide'): 1, ('provide', 'financial'): 1, ('financial', 'advice'): 1, ('advice', 'please'): 1, ('please', 'consult'): 1, ('consult', 'ourwebsite'): 1, ('ourwebsite', 'policyprior'): 1, ('policyprior', 'making'): 1, ('making', 'financial'): 1, ('financial', 'decisionsvitalik'): 1, ('decisionsvitalik', 'buterin'): 1, ('buterin', 'cofounder'): 1, ('cofounder', 'ethere'): 1, ('ethere', 'char'): 1, ('char', 'internet'): 1, ('internet', 'nowadays'): 1, ('nowadays', 'ephemeral'): 1, ('ephemeral', 'layer'): 1, ('layer', 'upon'): 1, ('upon', 'layer'): 1, ('layer', 'trusted'): 1, ('trusted', 'rd'): 1, ('rd', 'party'): 1, ('party', 'necessary'): 1, ('necessary', 'distribute'): 1, ('distribute', 'content'): 1, ('content', 'online'): 1, ('online', 'requires'): 1, ('requires', 'ongoing'): 1, ('ongoing', 'maintenance'): 1, ('maintenance', 'susceptible'): 1, ('susceptible', 'censorship'): 1, ('censorship', 'hostile'): 1, ('hostile', 'char'): 1, ('char', 'costfotobarcroft'): 1, ('costfotobarcroft', 'medium'): 1, ('medium', 'via'): 1, ('getty', 'imagesdetectives'): 1, ('imagesdetectives', 'london'): 1, ('london', 'seized'): 1, ('seized', 'cryptocurrency'): 1, ('cryptocurrency', 'worth'): 1, ('worth', 'million'): 1, ('million', 'moneylaundering'): 1, ('moneylaundering', 'investigation'): 1, ('investigation', 'metropolitan'): 1, ('metropolitan', 'police'): 1, ('police', 'said'): 1, ('said', 'thursday'): 1, ('thursday', 'char'): 1, ('char', 'dogecoin'): 1, ('dogecoin', 'spinoff'): 1, ('spinoff', 'shiba'): 1, ('shiba', 'inu'): 2, ('inu', 'spiked'): 1, ('spiked', 'highest'): 1, ('highest', 'price'): 1, ('price', 'six'): 1, ('six', 'week'): 1, ('week', 'friday'): 1, ('friday', 'elon'): 1, ('musk', 'tweeted'): 1, ('tweeted', 'would'): 1, ('would', 'name'): 1, ('name', 'shiba'): 1, ('shiba', 'inuat'): 1, ('inuat', 'et'): 1, ('et', 'tesla'): 1, ('tesla', 'ceo'): 1, ('ceo', 'published'): 1, ('published', 'tweet'): 1, ('char', 'trader'): 1, ('trader', 'financial'): 1, ('financial', 'professional'): 1, ('professional', 'work'): 1, ('work', 'floor'): 1, ('floor', 'new'): 1, ('york', 'stock'): 1, ('stock', 'exchangedrew'): 1, ('exchangedrew', 'angerergetty'): 1, ('angerergetty', 'imageswelcome'): 1, ('imageswelcome', 'thing'): 1, ('thing', 'opening'): 1, ('opening', 'bell'): 1, ('bell', 'sign'): 1, ('sign', 'get'): 1, ('get', 'day'): 1, ('day', 'top'): 1, ('top', 'stock'): 1, ('stock', 'char'): 1, ('due', 'processmore'): 1, ('processmore', 'validity'): 1, ('validity', 'cryptocurrenciesgoogle'): 1, ('cryptocurrenciesgoogle', 'applepartnered'): 1, ('applepartnered', 'coinbase'): 1, ('coinbase', 'u'): 1, ('u', 'char'): 1, ('processthe', 'original'): 1, ('original', 'code'): 1, ('code', 'allowed'): 1, ('allowed', 'creation'): 1, ('creation', 'world'): 2, ('web', 'wwwwill'): 1, ('wwwwill', 'aucti'): 1, ('aucti', 'char'): 1, ('char', 'institutional'): 1, ('institutional', 'interest'): 1, ('interest', 'cryptocurrencies'): 1, ('cryptocurrencies', 'like'): 2, ('like', 'bitcoin'): 2, ('ha', 'jumped'): 1, ('jumped', 'eric'): 1, ('eric', 'gaillardreutershedge'): 1, ('gaillardreutershedge', 'fund'): 1, ('fund', 'bos'): 1, ('bos', 'planning'): 1, ('planning', 'ramp'): 1, ('ramp', 'holding'): 1, ('holding', 'cryptocurrencies'): 1, ('cryptocurrencies', 'predicting'): 1, ('predicting', 'av'): 1, ('av', 'char'): 1, ('reutersedgar', 'suillustrationmexico'): 1, ('suillustrationmexico', 'c'): 1, ('char', 'original'): 1, ('web', 'wa'): 1, ('wa', 'written'): 1, ('bernerslee', 'sale'): 1, ('sale', 'sothebys'): 1, ('sothebys', 'part'): 1, ('part', 'nonfungible'): 1, ('token', 'bid'): 1, ('bid', 'starting'): 1, ('starting', 'berner'): 1, ('berner', 'char'): 1, ('bitcoin', 'ethereum'): 2, ('ethereum', 'dogecoin'): 1, ('dogecoin', 'ripple'): 1, ('front', 'displayed'): 1, ('displayed', 'binance'): 1, ('binance', 'logo'): 1, ('logo', 'illustration'): 1, ('june', 'reutersdado'): 1, ('reutersdado', 'ruvicfile'): 1, ('ruvicfile', 'char'): 1, ('reuters', 'staffmumbai'): 1, ('staffmumbai', 'reuters'): 1, ('reuters', 'india'): 1, ('india', 'financial'): 1, ('financial', 'crimefighting'): 1, ('crimefighting', 'agency'): 1, ('agency', 'said'): 1, ('said', 'friday'): 1, ('friday', 'wazirx'): 1, ('wazirx', 'one'): 1, ('one', 'country'): 1, ('country', 'largest'): 1, ('largest', 'cryptocurrency'): 2, ('cryptocurrency', 'exchange'): 1, ('exchange', 'director'): 1, ('director', 'investigation'): 1, ('investigation', 'char'): 1, ('reuters', 'ether'): 1, ('ether', 'investment'): 1, ('posted', 'record'): 1, ('outflow', 'last'): 1, ('week', 'june'): 1, ('june', 'bearing'): 1, ('bearing', 'brunt'): 1, ('brunt', 'negative'): 1, ('negative', 'sentiment'): 1, ('sentiment', 'cryptocurrencies'): 1, ('cryptocurrencies', 'according'): 1, ('data', 'mo'): 1, ('mo', 'char'): 1, ('london', 'june'): 2, ('reuters', 'andy'): 2, ('andy', 'murray'): 2, ('murray', 'cashing'): 2, ('cashing', 'craze'): 2, ('craze', 'nonfungible'): 2, ('nfts', 'selling'): 2, ('selling', 'moment'): 2, ('moment', 'wimbledon'): 2, ('wimbledon', 'tennis'): 2, ('tennis', 'tournament'): 2, ('tournament', 'latest'): 2, ('latest', 'highprofile'): 1, ('highprofile', 'char'): 1, ('char', 'doe'): 1, ('doe', 'enterprise'): 1, ('enterprise', 'stand'): 1, ('stand', 'ai'): 1, ('ai', 'adoption'): 1, ('adoption', 'curve'): 1, ('curve', 'take'): 1, ('take', 'ai'): 1, ('ai', 'survey'): 1, ('survey', 'find'): 1, ('find', 'selling'): 1, ('selling', 'nonfungible'): 1, ('token', 'nft'): 1, ('art', 'work'): 1, ('work', 'million'): 1, ('million', 'artist'): 1, ('artist', 'known'): 1, ('known', 'beeple'): 1, ('beeple', 'ha'): 1, ('ha', 'launched'): 1, ('launched', 'char'): 1, ('contributor', 'ownblockchain'): 1, ('ownblockchain', 'cryptocurrency'): 1, ('cryptocurrency', 'often'): 1, ('often', 'styled'): 1, ('styled', 'different'): 1, ('different', 'flavor'): 1, ('flavor', 'ice'): 1, ('ice', 'cream'): 1, ('cream', 'single'): 1, ('single', 'lesson'): 1, ('lesson', 'char'): 1, ('bitcoin', 'get'): 1, ('get', 'glory'): 1, ('glory', 'ethereum'): 1, ('ethereum', 'cryptocurrency'): 1, ('cryptocurrency', 'many'): 1, ('many', 'year'): 1, ('year', 'viewed'): 1, ('viewed', 'superior'): 1, ('superior', 'blockchain'): 1, ('blockchain', 'platform'): 1, ('platform', 'many'): 1, ('many', 'people'): 1, ('people', 'including'): 1, ('including', 'crypto'): 1, ('investor', 'trad'): 1, ('trad', 'char'): 1, ('char', 'hello'): 1, ('hello', 'friend'): 1, ('friend', 'welcome'): 1, ('welcome', 'back'): 1, ('back', 'week'): 1, ('week', 'reviewlast'): 1, ('reviewlast', 'week'): 1, ('week', 'wrote'): 1, ('wrote', 'tech'): 1, ('tech', 'taking'): 1, ('taking', 'disney'): 1, ('disney', 'week'): 1, ('week', 'im'): 1, ('im', 'talking'): 1, ('talking', 'search'): 1, ('search', 'new'): 1, ('new', 'crypto'): 1, ('crypto', 'messiahif'): 1, ('messiahif', 'youre'): 1, ('youre', 'reading'): 1, ('reading', 'tec'): 1, ('tec', 'char'): 1, ('char', 'certain'): 1, ('certain', 'worlddominating'): 1, ('worlddominating', 'website'): 1, ('website', 'might'): 1, ('might', 'biggest'): 1, ('biggest', 'sale'): 1, ('sale', 'year'): 1, ('year', 'far'): 1, ('far', 'place'): 1, ('place', 'score'): 1, ('score', 'major'): 1, ('major', 'deal'): 1, ('deal', 'fact'): 1, ('fact', 'cant'): 1, ('cant', 'even'): 1, ('even', 'find'): 1, ('find', 'deal'): 1, ('deal', 'thing'): 1, ('thing', 'like'): 1, ('like', 'online'): 1, ('online', 'cou'): 1, ('cou', 'char'): 1, ('char', 'within'): 1, ('within', 'decade'): 1, ('decade', 'quantum'): 1, ('quantum', 'computer'): 1, ('computer', 'could'): 1, ('could', 'powerful'): 1, ('powerful', 'enough'): 1, ('enough', 'break'): 1, ('break', 'cryptographic'): 1, ('cryptographic', 'security'): 1, ('security', 'protects'): 1, ('protects', 'cell'): 1, ('cell', 'phone'): 1, ('phone', 'bank'): 1, ('bank', 'account'): 1, ('account', 'email'): 1, ('email', 'address'): 1, ('address', 'yes'): 1, ('yes', 'bitcoin'): 1, ('bitcoin', 'wallet'): 1, ('wallet', 'writes'): 1, ('writes', 'cnbcbu'): 1, ('cnbcbu', 'char'): 1, ('char', 'disclosure'): 1, ('disclosure', 'goal'): 1, ('goal', 'feature'): 1, ('feature', 'product'): 1, ('product', 'service'): 1, ('service', 'think'): 1, ('think', 'youll'): 1, ('youll', 'find'): 1, ('find', 'interesting'): 1, ('interesting', 'useful'): 1, ('useful', 'purchase'): 1, ('purchase', 'entrepreneur'): 1, ('entrepreneur', 'may'): 1, ('may', 'get'): 1, ('get', 'small'): 1, ('small', 'share'): 1, ('share', 'revenue'): 1, ('revenue', 'sale'): 1, ('sale', 'char'): 1, ('contributor', 'owninvesting'): 1, ('owninvesting', 'cryptocurrencies'): 1, ('cryptocurrencies', 'extremely'): 1, ('extremely', 'risky'): 1, ('risky', 'may'): 1, ('may', 'billion'): 1, ('billion', 'disappeared'): 1, ('disappeared', 'crypto'): 1, ('market', 'hour'): 1, ('hour', 'th'): 1, ('th', 'char'): 1, ('char', 'xinhuawang'): 1, ('xinhuawang', 'ying'): 1, ('ying', 'getty'): 1, ('getty', 'imagesullius'): 1, ('imagesullius', 'stock'): 1, ('stock', 'closed'): 1, ('closed', 'record'): 1, ('record', 'high'): 1, ('high', 'thursday'): 1, ('thursday', 'bipartisan'): 1, ('bipartisan', 'deal'): 1, ('deal', 'infrastructure'): 1, ('infrastructure', 'bill'): 1, ('bill', 'helped'): 1, ('helped', 'boost'): 1, ('boost', 'economic'): 1, ('economic', 'optimismlilithe'): 1, ('optimismlilithe', 'sampp'): 1, ('sampp', 'nasdaq'): 1, ('nasdaq', 'char'): 1, ('contributor', 'ownwhile'): 1, ('ownwhile', 'anyone'): 1, ('anyone', 'buy'): 1, ('buy', 'cryptocurrencies'): 1, ('ethereum', 'certain'): 1, ('certain', 'thrill'): 1, ('thrill', 'cryptomining'): 1, ('cryptomining', 'process'): 1, ('process', 'painstak'): 1, ('painstak', 'char'): 1, ('contributor', 'ownon'): 1, ('ownon', 'may'): 1, ('may', 'elon'): 1, ('musk', 'announced'): 1, ('announced', 'tesla'): 1, ('tesla', 'would'): 1, ('would', 'longer'): 1, ('longer', 'accept'): 1, ('accept', 'bitcoin'): 1, ('bitcoin', 'form'): 1, ('form', 'payment'): 1, ('payment', 'ofits'): 1, ('ofits', 'environmental'): 1, ('environmental', 'impact'): 1, ('impact', 'char'): 1, ('token', 'character'): 1, ('character', 'cryptopunk'): 1, ('cryptopunk', 'series'): 1, ('series', 'fetched'): 1, ('fetched', 'million'): 1, ('million', 'thursday'): 1, ('thursday', 'setting'): 1, ('setting', 'new'): 1, ('new', 'world'): 1, ('world', 'auction'): 1, ('auction', 'record'): 1, ('record', 'single'): 1, ('single', 'cryptopunk'): 1, ('cryptopunk', 'luxury'): 1, ('luxury', 'auction'): 1, ('auction', 'house'): 1, ('house', 'sothebys'): 1, ('sothebys', 'saidth'): 1, ('saidth', 'char'): 1, ('char', 'enlarge'): 1, ('enlarge', 'bernerslee'): 1, ('bernerslee', 'reflecting'): 1, ('reflecting', 'creation'): 1, ('web', 'poster'): 1, ('poster', 'participatingtwo'): 1, ('participatingtwo', 'week'): 1, ('week', 'ago'): 1, ('ago', 'world'): 1, ('web', 'creator'): 1, ('creator', 'tim'): 1, ('bernerslee', 'sent'): 1, ('sent', 'nft'): 1, ('nft', 'web'): 1, ('web', 'original'): 1, ('source', 'c'): 1, ('stock', 'set'): 1, ('set', 'continue'): 1, ('continue', 'inching'): 1, ('inching', 'higher'): 1, ('higher', 'thursday'): 1, ('thursday', 'market'): 1, ('market', 'relax'): 1, ('relax', 'inflation'): 1, ('inflation', 'risk'): 1, ('risk', 'exact'): 1, ('exact', 'detail'): 1, ('detail', 'whats'): 1, ('whats', 'coming'): 1, ('coming', 'u'): 1, ('u', 'federal'): 1, ('federal', 'reservethe'): 1, ('reservethe', 'cryptocurrency'): 1, ('cryptocurrency', 'market'): 2, ('market', 'signif'): 1, ('signif', 'char'): 1, ('taken', 'march'): 1, ('march', 'reutersdado'): 1, ('reutersdado', 'ruvicillustrationlondon'): 1, ('ruvicillustrationlondon', 'june'): 1, ('reuters', 'youre'): 1, ('youre', 'bitcoi'): 1, ('bitcoi', 'char'): 1, ('latest', 'highprofil'): 1, ('highprofil', 'char'): 1, ('char', 'singapore'): 1, ('singapore', 'reuters'): 1, ('reuters', 'dollar'): 1, ('dollar', 'paused'): 1, ('paused', 'breath'): 1, ('breath', 'tuesday'): 1, ('tuesday', 'trader'): 1, ('trader', 'looked'): 1, ('looked', 'testimony'): 1, ('testimony', 'federal'): 1, ('federal', 'reserve'): 1, ('reserve', 'chair'): 1, ('chair', 'jerome'): 1, ('jerome', 'powell'): 1, ('powell', 'guidance'): 1, ('guidance', 'central'): 1, ('central', 'bank'): 2, ('bank', 'recent'): 1, ('recent', 'surprise'): 1, ('surprise', 'shift'): 1, ('shift', 'char'): 1, ('char', 'sign'): 1, ('sign', 'indicating'): 1, ('indicating', 'digital'): 1, ('digital', 'yuan'): 1, ('yuan', 'also'): 1, ('also', 'referred'): 1, ('referred', 'ecny'): 1, ('ecny', 'pictured'): 1, ('pictured', 'shopping'): 1, ('shopping', 'mall'): 1, ('mall', 'shanghai'): 1, ('shanghai', 'china'): 1, ('china', 'may'): 1, ('may', 'reutersaly'): 1, ('reutersaly', 'songjune'): 1, ('songjune', 'reuters'): 1, ('reuters', 'central'): 1, ('bank', 'digital'): 1, ('digital', 'currency'): 4, ('currency', 'comp'): 1, ('comp', 'char'): 1, ('char', 'something'): 1, ('something', 'different'): 1, ('different', 'ethereumbitcoin'): 1, ('ethereumbitcoin', 'ratio'): 1, ('ratio', 'pattern'): 1, ('pattern', 'changed'): 1, ('changed', 'may'): 1, ('may', 'something'): 1, ('something', 'watch'): 1, ('watch', 'last'): 1, ('last', 'weeksethereum'): 1, ('weeksethereum', 'ha'): 1, ('ha', 'looking'): 1, ('looking', 'like'): 1, ('like', 'highbeta'): 1, ('highbeta', 'bitcoin'): 1, ('bitcoin', 'bitcoin'): 1, ('bitcoin', 'wen'): 1, ('wen', 'char'): 1, ('char', 'loss'): 1, ('loss', 'british'): 1, ('british', 'fintech'): 1, ('fintech', 'firm'): 1, ('firm', 'revolut'): 1, ('revolut', 'nearly'): 1, ('nearly', 'doubled'): 1, ('doubled', 'last'): 1, ('last', 'year'): 1, ('year', 'despite'): 1, ('despite', 'cashing'): 1, ('cashing', 'yearend'): 1, ('yearend', 'cryptocurrency'): 1, ('cryptocurrency', 'boomthe'): 1, ('boomthe', 'company'): 1, ('company', 'founded'): 1, ('founded', 'former'): 1, ('former', 'lehman'): 1, ('lehman', 'brother'): 1, ('brother', 'trader'): 1, ('trader', 'nik'): 1, ('nik', 'storonsky'): 1, ('storonsky', 'char'): 1, ('char', 'digital'): 1, ('asset', 'mining'): 1, ('mining', 'shorthand'): 1, ('shorthand', 'proof'): 1, ('proof', 'work'): 1, ('work', 'consensus'): 1, ('consensus', 'validation'): 1, ('validation', 'public'): 1, ('public', 'blockchain'): 1, ('blockchain', 'infrastructure'): 1, ('infrastructure', 'thankfully'): 1, ('thankfully', 'shorthand'): 1, ('shorthand', 'important'): 1, ('important', 'understand'): 1, ('understand', 'digital'): 1, ('asset', 'char'): 1, ('char', 'exchangetraded'): 1, ('exchangetraded', 'fund'): 1, ('fund', 'driven'): 1, ('driven', 'artificial'): 1, ('artificial', 'intelligence'): 1, ('intelligence', 'booted'): 1, ('booted', 'tesla'): 1, ('tesla', 'amazon'): 1, ('amazon', 'portfolio'): 1, ('portfolio', 'june'): 1, ('june', 'instead'): 1, ('instead', 'choosing'): 1, ('choosing', 'load'): 1, ('load', 'share'): 1, ('share', 'company'): 1, ('company', 'including'): 1, ('including', 'qualcomm'): 1, ('qualcomm', 'snap'): 1, ('snap', 'gamestop'): 1, ('gamestop', 'char'): 1, ('contributor', 'ownthe'): 1, ('ownthe', 'global'): 1, ('global', 'blockchaintechnology'): 1, ('blockchaintechnology', 'market'): 1, ('market', 'estimated'): 1, ('estimated', 'accumulate'): 1, ('accumulate', 'billion'): 1, ('billion', 'revenue'): 1, ('revenue', 'imagine'): 1, ('imagine', 'ethereum'): 1, ('ethereum', 'poten'): 1, ('poten', 'char'): 1, ('char', 'good'): 1, ('good', 'morning'): 1, ('morning', 'welcome'): 1, ('welcome', 'insider'): 1, ('insider', 'finance'): 1, ('finance', 'im'): 1, ('im', 'dan'): 1, ('dan', 'defrancesco'): 1, ('defrancesco', 'whats'): 1, ('whats', 'agenda'): 1, ('agenda', 'todayyoure'): 1, ('todayyoure', 'invitedjoin'): 1, ('invitedjoin', 'u'): 1, ('u', 'learn'): 1, ('learn', 'navigate'): 1, ('navigate', 'thecomplicated'): 1, ('thecomplicated', 'process'): 1, ('process', 'buying'): 1, ('buying', 'homein'): 1, ('homein', 'char'): 1, ('char', 'china'): 1, ('china', 'campaign'): 1, ('campaign', 'rein'): 1, ('rein', 'crypto'): 1, ('crypto', 'continued'): 1, ('continued', 'ripple'): 1, ('ripple', 'bitcoin'): 1, ('bitcoin', 'network'): 1, ('network', 'sending'): 1, ('sending', 'price'): 1, ('price', 'largest'): 1, ('market', 'capitalization'): 1, ('capitalization', 'monday'): 1, ('monday', 'morningwhile'): 1, ('morningwhile', 'beijing'): 1, ('beijing', 'char'): 1, ('char', 'coinbase'): 1, ('coinbase', 'cofounder'): 1, ('cofounder', 'fred'): 1, ('fred', 'ehrsam'): 1, ('ehrsam', 'said'): 1, ('said', 'nfts'): 1, ('nfts', 'eventually'): 1, ('eventually', 'worthless'): 1, ('worthless', 'people'): 1, ('people', 'shouldnt'): 1, ('shouldnt', 'dismiss'): 1, ('dismiss', 'dogecoin'): 1, ('dogecoin', 'speaking'): 1, ('speaking', 'interview'): 1, ('interview', 'bloomberg'): 1, ('bloomberg', 'tv'): 1, ('tv', 'wednesdayehrsam'): 1, ('wednesdayehrsam', 'also'): 1, ('also', 'describ'): 1, ('describ', 'char'): 1, ('char', 'u'): 1, ('u', 'country'): 1, ('country', 'prepared'): 1, ('prepared', 'widespread'): 1, ('widespread', 'use'): 1, ('use', 'cryptocurrencies'): 1, ('cryptocurrencies', 'study'): 1, ('study', 'published'): 1, ('published', 'thursday'): 1, ('thursday', 'showing'): 1, ('showing', 'high'): 1, ('high', 'accessibility'): 1, ('accessibility', 'interest'): 1, ('interest', 'digital'): 1, ('currency', 'within'): 1, ('within', 'world'): 1, ('world', 'large'): 1, ('large', 'char'): 1, ('processthe', 'famous'): 1, ('famous', 'meme'): 1, ('meme', 'doge'): 1, ('doge', 'dog'): 1, ('dog', 'japanese'): 1, ('japanese', 'shiba'): 1, ('inu', 'breed'): 1, ('breed', 'became'): 1, ('became', 'char'): 1, ('char', 'salvadoran'): 1, ('salvadoran', 'el'): 1, ('el', 'zonte'): 1, ('zonte', 'community'): 1, ('community', 'using'): 1, ('using', 'bitcoin'): 1, ('bitcoin', 'two'): 1, ('two', 'year'): 1, ('year', 'business'): 1, ('purchase', 'basic'): 1, ('basic', 'basket'): 1, ('basket', 'payment'): 1, ('payment', 'el'): 1, ('el', 'salvador'): 1, ('salvador', 'became'): 1, ('became', 'first'): 1, ('first', 'country'): 1, ('country', 'world'): 1, ('world', 'recognizi'): 1, ('recognizi', 'char'): 1, ('char', 'happenedthe'): 1, ('happenedthe', 'price'): 1, ('price', 'popular'): 1, ('popular', 'cryptocurrency'): 1, ('cryptocurrency', 'ethercryptoeth'): 1, ('ethercryptoeth', 'ha'): 1, ('ha', 'dropping'): 1, ('dropping', 'last'): 1, ('last', 'month'): 1, ('month', 'continued'): 1, ('continued', 'today'): 1, ('today', 'digital'): 1, ('currency', 'value'): 1, ('value', 'ha'): 1, ('ha', 'dropped'): 1, ('dropped', 'last'): 1, ('last', 'mon'): 1, ('mon', 'char'): 1, ('char', 'reddit'): 1, ('reddit', 'inc'): 1, ('inc', 'cofounder'): 1, ('cofounder', 'alexis'): 1, ('alexis', 'ohanian'): 1, ('ohanian', 'ha'): 1, ('ha', 'raised'): 1, ('million', 'aventure'): 1, ('aventure', 'fund'): 1, ('fund', 'first'): 1, ('first', 'launched'): 1, ('launched', 'new'): 1, ('new', 'firm'): 1, ('firm', 'seven'): 1, ('seven', 'seven'): 1, ('seven', 'sixthe'): 1, ('sixthe', 'investor'): 1, ('investor', 'behindseven'): 1, ('behindseven', 'seven'): 1, ('seven', 'sixarehalf'): 1, ('sixarehalf', 'female'): 1, ('female', 'bl'): 1, ('bl', 'char'): 1, ('char', 'falling'): 1, ('falling', 'price'): 1, ('price', 'increased'): 1, ('increased', 'inventory'): 1, ('inventory', 'europe'): 1, ('europe', 'suggest'): 1, ('suggest', 'gpu'): 1, ('gpu', 'shortage'): 1, ('shortage', 'could'): 1, ('could', 'coming'): 1, ('coming', 'end'): 1, ('end', 'new'): 1, ('new', 'report'): 1, ('report', 'show'): 1, ('show', 'nearly'): 1, ('nearly', 'drop'): 1, ('drop', 'amd'): 1, ('amd', 'nvidia'): 1, ('nvidia', 'graphic'): 1, ('graphic', 'card'): 1, ('card', 'price'): 1, ('price', 'europe'): 1, ('europe', 'wel'): 1, ('wel', 'char'): 1, ('char', 'mumbai'): 1, ('mumbai', 'reuters'): 1, ('global', 'digital'): 1, ('currency', 'exchange'): 1, ('exchange', 'exploring'): 1, ('exploring', 'way'): 1, ('way', 'set'): 1, ('set', 'india'): 1, ('india', 'following'): 1, ('following', 'footstep'): 1, ('footstep', 'market'): 1, ('market', 'leader'): 1, ('leader', 'binance'): 1, ('binance', 'industry'): 1, ('industry', 'source'): 1, ('source', 'told'): 1, ('told', 'reuters'): 1, ('reuters', 'government'): 1, ('government', 'char'): 1}
# Function token_count generates the top 10 words for a given coin
def token_count(tokens, N=10):
    """Returns the top N tokens from the frequency count"""
    return Counter(tokens).most_common(N)_____no_output_____# Use token_count to get the top 10 words for Bitcoin

# Create string with individual words
btc_counts_indiv = Counter(ngrams(btc_string_processed, n=1))
# Apply token_count function
token_count(btc_counts_indiv)

#Alternative solution
# print(dict(btc_counts_indiv.most_common(10)))_____no_output_____# Use token_count to get the top 10 words for Ethereum

# Create string with individual words
eth_counts_indiv = Counter(ngrams(eth_string_processed, n=1))
# Apply token_count function
token_count(eth_counts_indiv)

#Alternative solution
# print(dict(eth_counts_indiv.most_common(10)))_____no_output_____

---_____no_output_____### Word Clouds

In this section, you will generate word clouds for each coin to summarize the news for each coin_____no_output_____

from wordcloud import WordCloud
import matplotlib.pyplot as plt
plt.style.use('seaborn-whitegrid')
import matplotlib as mpl
mpl.rcParams['figure.figsize'] = [20.0, 10.0]_____no_output_____# Generate the Bitcoin word cloud

# confused - btc_string_processed is already a string (error given - expects a string like object)

wc = WordCloud().generate(btc_string_processed)
plt.imshow(wc)_____no_output_____# Generate the Ethereum word cloud

wc = WordCloud().generate(eth_string_processed)
plt.imshow(wc)_____no_output_____

---
## 3. Named Entity Recognition

In this section, you will build a named entity recognition model for both Bitcoin and Ethereum, then visualize the tags using SpaCy._____no_output_____

import spacy
from spacy import displacy_____no_output_____# Download the language model for SpaCy
# !python -m spacy download en_core_web_sm_____no_output_____# Load the spaCy model
nlp = spacy.load('en_core_web_sm')_____no_output_____

---
### Bitcoin NER_____no_output_____

# Concatenate all of the Bitcoin text together
#already done in btc_string_____no_output_____# Run the NER processor on all of the text
btc_NER = nlp(btc_string)

# Add a title to the document
# YOUR CODE HERE!_____no_output_____# Render the visualization
displacy.render(btc_NER, style='ent')_____no_output_____# List all Entities
# all geopolitical entities like in the example. Not sure if that's the question
print([ent.text for ent in btc_NER.ents if ent.label_ == 'GPE'])['florida', 'china', 'germany', 'china', "'york'", 'china', 'china', 'paris', "'salvador'", "'york'", "'york'", 'london', "'york'", "'york'", 'china', 'america', "'york'", 'london', 'china', "'beach'", 'washington', "'york'"]

---_____no_output_____### Ethereum NER_____no_output_____

# Concatenate all of the Ethereum text together
# already done in eth_string_____no_output_____# Run the NER processor on all of the text
eth_NER = nlp(eth_string)

# Add a title to the document
# YOUR CODE HERE!_____no_output_____# Render the visualization
displacy.render(eth_NER, style='ent')_____no_output_____# List all Entities
# all geopolitical entities like in the example. Not sure if that's the question
print([ent.text for ent in eth_NER.ents if ent.label_ == 'GPE'])["'york'", 'china', 'london', 'britain', 'london', 'london', 'staffmumbai', "'york'", 'london', 'london', 'shanghai', 'china', 'beijing', 'india']

---_____no_output_____