How to name your crowdfunding projects? 💸

Published Jun 1, 2019 by Yeoun Yi
#advertising #marketing #psycholinguistics



This project was inspired by a paper, The Language the Gets People to Give: Phrases that Predict Success on Kickstarter

Most NLP Projects focus on the meaning of language data. However, I’m more interested in the syntax of language data: e.g. “Even two phrases convey similar meaning, why the latter is more successful?”

I chose crowdfunding data for two reasons.

  1. Clear result: funding or not
  2. Influence of language itself to the result is bigger than general ad slogans

I crawled 120 failed projects’ name and 100 successful projects’ name. The crowdfunding website didn’t show the failed projects, so I searched in Google “펀딩 무산. 목표 금액을 달성하지 못했습니다. 결제가 진행되지 않습니다.”, which is the phrase written in failed project pages, and crawled the name of project there.

import requests
from bs4 import BeautifulSoup

headers = {'User-Agent': 'Mozilla/5.0'}
failed = []

# search result of "펀딩 무산. 목표 금액을 달성하지 못했습니다. 결제가 진행되지 않습니다."
for page in [0,10,20,30,40,50,60,70,80,90,100,110]: 
    URL = "https://www.google.com/search? q=%ED%8E%80%EB%94%A9+%EB%AC%B4%EC%82%B0.+%EB%AA%A9%ED%91%9C+%EA%B8%88%EC%95%A1%EC%9D%84+%EB%8B%AC%EC%84%B1%ED%95%98%EC%A7%80+%EB%AA%BB%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4.+%EA%B2%B0%EC%A0%9C%EA%B0%80+%EC%A7%84%ED%96%89%EB%90%98%EC%A7%80+%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4.&newwindow=1&ei=jHTfXJHVHYKB-QaNvoLYDQ&start=" + str(page) + "&sa=N&filter=0&ved=0ahUKEwiRy5LBiqTiAhWCQN4KHQ2fANsQ8tMDCGI&biw=1280&bih=578"
    res = requests.get(URL, headers=headers)
    soup = BeautifulSoup(res.text)
    
    for i in range(10): # 10 projects on 1 page  
        failed.append(soup.find_all("h3")[i].text) # save it to the list 

As I want to analyze these texts’ syntax, …

(1) POS Tagging using KoNLPy

from konlpy.tag import Komoran
tagger = Komoran()
tagged_f = [tagger.pos(fl) for fl in fail_line]

(2) Sentence Structure Analysis using NLTK

import nltk

grammar = """
NP : {<NN.>*} # 일반/고유명사
NP : {<SN><NP>} # 수사 + 명사구 
NP: {<V.><ETN>}   # 명사형 전성 어미 
NP : {<NP><JKO>} # 목적격조사 
NP : {<NP><JKS>} # 주격 조사 
NP : {<NP><JKC>} # 보격 조사 

MP: {<MM>*} # 관형사 
MP: {<V.><ETM>} # 동사/형용사와 관형사형 전성 어미
MP: {<XS.><ETM>} # 동사/형용사 파생 접미사와 관형사형 전성어미
MP : {<NP><JKG>} # 관형격조사 

JP:{<MAG>*} # 일반부사 
JP : {<NP><JKB>} # 부사격조사 

VP : {<V.><E.>} # 동사/형용사와 연결/종결어미
VP : {<VC.><E.>} #긍/부정지정사와 연결/종결어미
VP: {<XS.>*<E.>} # 동사/형용사 파생 접미사와 연결/종결어미 

ENG : {<SL>*} # 외국어

"""
parser = nltk.RegexpParser(grammar)

# draw a tree structure
parser.parse(tagged_f[24]).draw()



I saved this structure in pandas DataFrame like this. I made a separate Dataframe for successful projects and failed projects.



It turns out successful projects used Noun Phrases, failed projects used Verb Phrases more often.

I got curious whether using noun or verb phrases determines the success rates of crowdfunding projects, and did some brain wave experiments!

When people read unfamiliar, less expected words, brain wave N400 is increased relative to more familiar, expected words. Using this property, we can test how well certain stimulus is remembered. Well remembered stimulus elicits lower, less remembered one elicits higher N400 amplitudes.

We cannot guarantee the best remembered advertisement is the most successful one, but can suppose it would be better than less remembered ones.

I designed this experiment using PsychoPy3.



There were two sets in this experiment: an advertisement (or project name) using noun phrases in set A used verb phrases in set B, and vice versa. I also added fillers to make sure the subjects are not aware of the purpose of this experiment.

There were 5 subjects, which was not many, but still I got some interesting results.



Seeing 400-500ms, where N400 is elicited, we can find that noun phrases elicited reduced N400. That means people tend to remember noun phrases better than verb phrases, so it would be better to use noun phrases in advertisements.



*****

© Yeoun Yi