2017-09-14 1 views
2

각 줄에 트윗이 포함 된 파일을 읽고 트윗의 각 문자를 정수로 변환하려고합니다. 파일을 찾을 수 있습니다 here트위터 설명이 포함 된 파일 읽기 emojis

그러나 28th line 해당 파일에서 뭔가 잘못되었습니다.

파일을 읽는 동안 또한, 내가 그 경우에 그것을 읽을 때, 선은 다음과 같이 인쇄 각 라인을 인쇄
Wish she could have told me herself. @NicoleScherzy #nicolescherzinger 
#OneLove #myfav #MyQueen :heavy_black_heart:️:heavy_black_heart:️ 

(첫 번째를 무시 : 나는 파일을 볼 때, 나는 다음과 같이 그 라인은 참조 단순화를위한 두 세그먼트) :

Wish she could have told me herself. @NicoleScherzy #nicolescherzinger #OneLove #myfav #MyQueen :heavy_black_heart:️:heavy_black_heart:️ 

자, 문자로 문자를 인쇄하려면 오류가 있습니다. 여기에 해당 코드와 오류가 있습니다.

x=" Wish she could have told me herself. @NicoleScherzy #nicolescherzinger #OneLove #myfav #MyQueen :heavy_black_heart:️:heavy_black_heart:️" 

for i=1:length(x) 
    println(x[i]) 
end 

. 
. 
. 
INFO: # 
INFO: m 
INFO: y 
INFO: f 
INFO: a 
INFO: v 
INFO: 
INFO: # 
INFO: M 
INFO: y 
INFO: Q 
INFO: u 
INFO: e 
INFO: e 
INFO: n 
INFO: 
INFO: : 
INFO: h 
INFO: e 
INFO: a 
INFO: v 
INFO: y 
INFO: _ 
INFO: b 
INFO: l 
INFO: a 
INFO: c 
INFO: k 
INFO: _ 
INFO: h 
INFO: e 
INFO: a 
INFO: r 
INFO: t 
INFO: : 
INFO: ️ 
ERROR: UnicodeError: invalid character index 
in slow_utf8_next(::Array{UInt8,1}, ::UInt8, ::Int64) at ./strings/string.jl:67 
in next at ./strings/string.jl:96 [inlined] 
in getindex(::String, ::Int64) at ./strings/basic.jl:70 
in macro expansion; at ./REPL[2]:1 [inlined] 
in anonymous at ./<missing>:? 

도대체 무엇입니까? 시간이 최고 및 유장에 바 시간으로 표시됩니다 왜 그냥 오류 메세지를 지정하지 않고 전에 공간이, 거기에 또 다른 :

+0

이 패키지에 관심이있을 수도 있습니다 : https://github.com/JuliaText/TextAnalysis.jl –

답변

3

문자열이어야하며, 유니 코드는 모든 곳에서 복잡 (인간의 언어가 복잡하기 때문에)와 줄리아에서. 또한 구현은 향후 변경 될 수 있습니다. V0.5 광고/v0.6의 이름으로 문제의 루프를 작성하는 방법입니다

for c in x 
    println(c) 
end 

그리고 인덱싱을 사용하는, 뭔가 같은 : 일반적으로

i = 1 
while i<=endof(x) 
    println(x[i]) 
    i = nextind(x,i) 
end 

당신이 endof 잘 알고 있어야합니다, 01207/v0.6부터 Julia에서 적절한 문자열 조작을 작성하려면 nextind REPL 도움말과 documentation은이를 지원해야합니다.

+0

색인 생성 버전이 저에게 효과적입니다. 불행히도, 나는 아직도 내가 왜 github에서 일반 h로 또는 리눅스의 적은 명령으로 h를 볼 수 있지만 줄리아가 파일을 읽을 때 바를 h는지 이해할 수 없었다. 가능하다면 설명해 주시겠습니까? – zwlayer

+0

'보이지 않는'유니 코드 문자 인 0xFE0F (설명은 https://codepoints.net/U+FE0F 링크 참조)가 'heavyblackheart :: heavyblackheart'의 콜론 사이에 있습니다. 기본적으로 이모티콘이 있어야 함을 의미합니다. 이제 단일 심볼을 인코딩하는 여러 유니 코드 코드 포인트 (읽기 문자) 인 * graphemes * 문제가 있습니다. 대답에서 언급했듯이 매우 복잡하지만 도서관과 공식 표준 도서관은 대부분의 복잡성을 해결했으며 Julia는 그 중 일부를 사용합니다. –

+0

내 주된 목적은 짹짹에 emojies를 추출하는 것입니다. 하지만 그런 경우 유니 코드 문자로 인해 제 작업이 상당히 어려워집니다. 예를 들어, 내 질문에 주어진 짹짹 들어, 내가 추출하려는 : heavyblackheart : 그리고 사전에 넣어. 그러나이 보이지 않는 인물 때문에 나는 그것을 만들 수 없었다. 그렇게 할 수있는 간단한 방법이 있습니까? 내 말은, 주어진 트윗 세트에 대해 트윗에 이모티콘을 저장하는 사전을 만드는 것입니다. – zwlayer

관련 문제